Recent Articles

Basic Training For cf.Objective() 2009
Luis Majano is offering a one day ColdBox training course on May 13th in the Hyatt (the cf.Objective() hotel). Cost $449. If you've already registered for cf.Objective()...

cf.Objective() 2009 Updates
Save $130 with cf.Objective() Early Bird. cf.Objective() 2009 early bird pricing ends on March 16th and the price will go up by $130 after that. 3-day registration...

Open BlueDragon Joins The CFML Advisory Committee
A lot of people have asked about OpenBD being represented on the CFML Advisory Committee since the original announcement at CFUNITED 2008. I'm pleased...

Challenges Facing Coldfusion in 2009
A year ago, I challenged the community to evangelize ColdFusion and convert new developers from other technologies. It was part of a blog post that...

Creating Behavior-Driven Actions
As folks know, I'm a big advocate of automated testing in general and unit testing in particular. I've gradually become a big fan of Test-Driven Development...


04.06.09

The Pitfalls Of Object Oriented Software

By Sean Corfield

Ben Nadel had a bit of a "crisis of faith" last week over his ability to learn OOP the "right" way. He's highlighted a problem most people have coming to OO these days: in their search for the One True Way(tm), they are overwhelmed and can feel like failures. It can be a long, hard road. In a comment on his blog, I recommended everyone read the first two paragraphs of the "Gang of Four" Design Patterns book because it really sets this in context. I'm going to reproduce those first two paragraphs here to get you thinking. I highly recommend buying and reading the book.

Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. You must find pertinent objects, factor them into classes at the right granularity, define class interfaces and inherited hierarchies, and establish key relationships among them. Your design should be specific to the problem at hand but also general enough to address future problems and requirements. You also want to avoid redesign, or at least minimize it. Experienced object-oriented designers will tell you that a reusable and flexible design is difficult if not impossible to get "right" the first time. Before a design is finished, they usually try to reuse it several times, modifying it each time.

Yet experienced object-oriented designers do make good designs. Meanwhile new designers are overwhelmed by the options available and tend to fall back on non-object-oriented techniques they've used before. It takes a long time for novices to learn what good object-oriented design is all about. Experienced designers evidently know something inexperienced ones don't. What is it?

The Power, Control and Services You Need Wrapped
in the Expert Support You Want - Learn More

Read it over and over again to make sure you're taking it all in. This stuff is hard and you'll be overwhelmed at the beginning. It takes a lot of time and experience to get "good" and even the experts almost never get it "right" the first time, or even the first few times.

Don't be discouraged but be realistic: don't expect OO to be a quick win. It's a process, a journey. I'd been doing OO for about three years before that book first appeared - imagine how frustrating those first three years were! Even after the book appeared, imagine how long it took people to come to terms with what the authors were saying and how much longer it took most people to take the contents of the book onboard!

Comments


About the Author:
Sean is currently Senior Computer Scientist and Team Lead in the Hosted Services group at Adobe Systems Incorporated. He has worked in the IT industry for nearly twenty-five years, first in database systems and compilers (serving eight years on the ANSI C++ Standards Committee), then in mobile telecoms, and finally in web development. Sean is a staunch advocate of software standards and best practices, and is a well-known and respected speaker on these subjects. Sean has championed and contributed to a number of ColdFusion frameworks, and is a frequent publisher on his blog, http://corfield.org/
About ColdFusionProNews
ColdFusionProNews is a collection of news and commentary designed to keep you in step with the ever evolving landscape of ColdFusion environments. News and Advice for ColdFusion Professionals





ColdFusionProNews is brought to you by:

SecurityConfig.com NetworkingFiles.com
NetworkNewz.com WebProASP.com
DatabaseProNews.com SQLProNews.com
ITcertificationNews.com SysAdminNews.com
LinuxProNews.com WirelessProNews.com
CProgrammingTrends.com ITmanagementnews.com





 
-- coldfusionpronews is an iEntry, Inc. publication --
iEntry, Inc. 2549 Richmond Rd. Lexington KY, 40509
2009 iEntry, Inc.  All Rights Reserved  Privacy Policy  Legal

archives | advertising info | news headlines | free newsletters | comments/feedback | submit article


WebProWorld Forum eCommerce Trends Become Strategy