Brad Wood talks about “Design Patterns for amazing app architecture (16 patterns)” in this episode of ColdFusion Alive podcast with host Michaela Light.
He is one of the speakers at the CFObjective Conference, a system architect for Ortus Solution and lead developer of the CommandBox CLI.
Contents
Show notes
- What is a design pattern?
- Why should you be using them in your projects?
- Commons solutions to common problems
- Becoming a better software craftsman
- Architect better apps
- Command box 2-day training
- Extending Command box
- Why are you proud to use CF?
- WWIT for you to make CF more alive this year?
- What are you looking forward to at CFObjective?
Patterns to talk about
-
Builder
-
Object pool
-
Singleton
-
Strategy
-
Composite
-
Decorator
-
Facade
-
Front controller
-
Chain of responsibility
-
Memento
-
Observer (publish/subscribe)
-
Double checked locking
Anti-patterns
- Anemic domain model
- God object
- Premature optimization
- Readable, clear, concise code first
- Then only optimize code pieces that are slow
- Improbability factor
Honorable mentions
- Law of demeter
- Not too many dots in lines of code for class use
- Too many dots make you dotty
- Principle of least astonishment
- Brook’s Law
Mentioned in this episode
- Design patterns
- book Design Patterns: Elements of Reusable Object-Oriented Software was published in 1994 by the so-called “Gang of Four”
- Code Complete is a software development book, written by Steve McConnell
- Book Mythical Man Month by Albert Brooks
- Command box training
- Sean Corfield article on Anemic domain model in the ColdFusion Quarterly
- Cyclomatic complexity
- Code smell
- MVC
- WORM = Write Once, Read Many code
- FusionReactor auto profiler
- Jenkins run time test recording
- Command box 3.7 directory watchers
- Testbox code coverage (with FusionReactor)
- Travis CI
- Docker
- Docker Swarm
- Forgebox
- DevOps Best Practices
- CFconfig app
- Lucee CFML
- Book Uncle Bob’s clean code
Listen to the Audio

Bio
Brad Wood
Brad has been programming ColdFusion since 2001 and has used every version of CF since 4.5. He first fell in love with ColdFusion as a way to easily connect a database to his website for dynamic pages. He enjoys configuring and performance tuning high-availability Windows and Linux ColdFusion environments as well as SQL Server. Brad is the ColdBox Platform developer advocate at Ortus Solutions and lead developer of the CommandBox CLI.
Links
* WWIT= What Would It Take?
Interview transcript
Michael: Welcome back to the show. I'm here with Brad Wood and he is the amazing application system architect for Ortus Solutions as well as being evangelist for many of their Box products. Today, we’re going to be talking about design patterns so you can have amazing architecture in your apps and there's a whole bunch of patterns we're going to look at. We’re going to look at just in case you’ve been asleep for the last 20 years and missed what a design pattern was and how it affects coding. We’re going to look at that and why you should be using them and how they can be common solutions to common problems and help you produce better code in less time.
In fact, generally, just become better software craftsman and architect apps better. Also, we'll briefly look into the CommandBox two-day training that Brad is doing before the cfObjective conference. He's giving a talk on design patterns at cfObjective which is only weeks away now so, very excited for that. Welcome Brad.
Brad Wood: Thank you, Michael.
Michael: Just for folks who don't know, what is design pattern and I'm assuming it's nothing to do with design and Photoshop and all that, It's all to do with coding.
Read more
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.
Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.
What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.
And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.
You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.
All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.
Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.
No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens Next
ColdFusion Alive Best Practices Checklist
Modern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.
√ Easily create a consistent server architecture across development, testing, and production
√ A modern test environment to prevent bugs from spreading
√ Automated continuous integration tools that work well with CF
√ A portable development environment baked into your codebase… for free!
Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.