Tuesday, May 6, 2008

design patterns

I recently attended the cfobjective conference. Blogging helps me internalize concepts presented, so here goes.

First thanks to Kurt W, Peter and Matt Woodward for the workshop in machii. Also, Sean Corfield for the excellent description and illustration around design patterns.

Why design patterns?

Promote tiered development, which promotes the separation of parts of the application. The bus. logic is separated from the database logic which is separated from the presentation logic. This makes the application easier to troubleshoot, support, add new things to etc.

A very common design pattern is MVC

Programmers can work on different areas of the same application at the same time. One programmer can work on the bus. logic while another is working the presentation layer while a third is working in the database.

Less experienced programmers will typically not see the value in the tiered approach to software design. They will put the logic or code into a single of set of files, grouping together database, business and presentation layer code or logic. This approach is adequate if the application is a one time shot, never to be added to or updated again. If the application grows, the code becomes more difficult to maintain and troubleshoot as new code and logic is added. If a new programmer comes on to maintain, more difficulties arise because there are no standards followed.

More experienced programmers see the pay off and need for a well tiered application. As new requirements come along and new programmers are introduced to the application, code separation and predictability become more valued.

No comments: