Interview for Design Patterns and CFML
"Design Patterns and CFML" interview with Simon Horwith
Michael Smith: This time we are talking with Simon Horwith about his CFUNITED-05
talk "Design Patterns and CFML". So why should a developer come to your session Simon?
Simon Horwith: Design patterns are proven solutions to common problems in software development.
Many of the features in Object Oriented Programming allow developers to take full advantage of
code-reuse as well as build software that is extremely flexible in terms of extensibility and
maintainability. Unfortunately, the vast majority of ColdFusion Developers don't take advantage of
the features in either
one. Learning about design patterns and how to use OOP features in your designs allows developers
to take their software and their development skills to a whole new level.
MS: What sort of improvements have you seen?
SH: Applications built using the techniques I discuss in this session are loosly coupled. By that I
mean that code in one place is not dependent on code in another. This allows you to build
applications that are very easy to maintain and that tend not to "break" when changes are made to
it's underlying components.The code is also easier to maintain because of a clean seperation between
business logic and presentation code. There are more benefits, too. Many of the patterns I will
talk about offer developers ways to drastically improve the speed (performance) of their
applications. Some of them allow you to implement site-wide (or application-wide) changes much more
quickly than would otherrwise be possible. There are so many improvements made to applications that
take advantage of design patterns and Object Oriented features in CFML.
MS: So what exactly is a design pattern?
SH: A design pattern is a blueprint for the solution to a problem. When given a list of
requirements for how an application needs to work, design patterns help you to determine how to
represent the parts of that application, and how those parts will interact with each other. A book
of design patterns is kind of like a recipe book for software development. In my session I'll not
only talk about design patterns but also about the best ways to implement them in code. I also plan
to discuss some real world scenarios in which I've implemented a design pattern and/or an object
oriented feature in order to achieve great results.
MS: What are some of the patterns you will look at?
SH: Well, everyone talks about Model View Controller ("MVC") so of course I'll discuss that. A few
of the other patterns that I'll also discuss include facade, DTO, Business Delegate, Front
Controller, Resource Pool, and many others. In addition, I will talk about best practices for
taking advantage of Object Oriented features such as encapsulation, inheritance, and polymorphism
and I'll dicuss what I like to refer to as the "API Approach to CFML Development". I will be sure
to also discuss the role that CFML constructs (CFINCLUDES, Custom Tags, UDFs, and CFCs) play in
these patterns and approaches to development, as well as how the new features in CFMX 7 fit-in to
all of this. Anyone really interested in rolling up their sleeves and spending an entire day
learning about design patterns and APIs might want to enroll to take the full-day session I'm
teaching for CFUnited a couple of days prior to the first day of the conference, entitled "Roll Your
Own API - Maximizing Code ReUse with CFCs and Custom Tags".
MS: That sounds really useful - see you at CFUNITED.