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.
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 grew up in southern Missouri and after high school majored in Computer Science with a music minor at MidAmerica Nazarene University (Olathe, KS). Today he lives in Kansas City with his wife and three girls. Brad enjoys all sorts of international food and the great outdoors.
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
CFML slack box channel
Twitter
brad
* 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 NextColdFusion Alive Best Practices ChecklistModern 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.