A few weeks ago I received an email asking for the slides for one of my talks he had seen on parleys.com. What was especially interesting about this request is that it was for a talk I gave – what feels like a lifetime ago – at SpringOne 2007 !
The talk is Improving application design with a rich domain model and is about what is still one of my favorite topics: object-oriented design. It describes how to improve the design of your application’s business logic by using traditional object-oriented design techniques. It covers a number of topics including:
- the limitations of procedural code aka. Transaction Scripts
- the benefits of the Domain Model pattern
- the building blocks of Domain-Driven design – entities, value objects, repositories, and services
- Common code smells and how to refactor them away: long method, feature envy, data class, primitive obsession, switch statements, data clumps
The talk finishes with a demo of how to incrementally refactor a procedural design into an object-oriented design.
These are some basic software development techniques that I suspect many developers have either forgotten or never learned in the mad rush to master the latest fashionable technology.