Sorry, Frank. I did not mean to misrepresent you in any way but merely to use a jocular reference out of good nature. I know you are into OOP.
On 6/1/05, Frank W. Zammetti <[EMAIL PROTECTED]> wrote: > On Wed, June 1, 2005 9:47 am, Dakota Jack said: > > This is what our > > fellow traveler Frank Zammettie finds inherently suspicious about the > > *OOP nuts*. > > Woah, leave me out of this. I've purposely stayed away from this thread > all this time, now I have to get in... > > I don't want anyone thinking I'm anti-OOP or anything remotely like that. > I am very much an OOP proponent. While I almost certainly have used the > term "OOP nuts" at some point because I think some people could probably > be described that way, that really sounds a lot more harsh than my opinion > actually is, so let me clarify... > > What I have said is that I have seen many instances where people take the > OOP exercise so far in trying to get a perfect architectural structure in > place that they wind up writing code that is actually harder to understand > than it otherwise could be. There is great benefit to writing code that > is composed of smaller, largely interchangeable pieces rather than large > monolithic pieces. We all know this. However, I have seen this taken so > far that it takes forever to grasp how all the pieces fit together to form > the larger whole, and this is just as bad as writing one larger whole > would have been. > > Related to this, patterns are a wonderful invention, but I see day in and > day out people trying to find a pattern for every single situation. > People seem to think that they have to solve every problem by finding a > suitable pattern. The problem is, everyone seems to be so > "pattern-gung-ho" nowadays that they simply want to apply a pattern and if > it actually makes things more complex, too bad. If it doesn't really fit > the problem but does happen to solve it, that's fine too. A pattern > mismatch, or a pattern where none was truly needed, is just as bad as no > pattern at all in my experience. > > Simplicity is a beautiful thing. That is always my underlying design goal > for two reasons... > > One, in a corporate environment as I work in, you never know when someone > else is going to have to come along and maintain your code. You aren't > doing them any favors by writing code that, while architecturally sound, > is more complex to grasp. If after three months they say "wow, this guy > architected this code perfectly!", that's great, but if those three months > are spent not being especially productive while they try and understand > what you built, then the code wasn't well-written in the end. > > Two, when you jump around between many different projects, you tend to > forget your own work quickly. I sometimes look at code I wrote just last > year and go "I don't remember how or why I did this". Fortunately I > comment the hell out of everything I do, but more importantly I try to > code in straight-forward ways. Sometimes that means *NOT* creating that > helper class to encapsulate 10 lines of code, even though that might > architecturally be better and fit some pattern, but instead just inline it > (assuming I don't expect it to be shared of course). > > In a nuthshell, my point is absolutely *USE* OOP and patterns, and other > related techniques, think in those ways all the time, but don't > over-engineer things!! Don't make design decisions because you CAN do > something, make them because it is the RIGHT thing to do. And don't > over-complicate things for the sake of achieving some theoretical design > utopia. Make your code easy to understand, even if sometimes at the cost > of design trade-offs. Naturally there is a balance to be struck... > architecture *IS* after all important! > > Frank > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- "You can lead a horse to water but you cannot make it float on its back." ~Dakota Jack~ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]