Great illustration by Cognitive Media of Daniel Pink’s presentation at the Royal Society for the encouragement of Arts, Manufactures and Commerce (RSA) based on his book “Drive: The Surprising Truth About What Motivates Us”.
High quality software designs are easier and safer to work with. Investing in quality demands discipline and skill. Good design principles are usually helpful. But, are they always applicable?
This post investigates the applicability of the “Open-Closed Principle” when we add new functionality to a software design whose source code is entirely under our control.
Our argument is based on Dijkstra’s concept of separation of concerns.
This post resumes the Revisiting Fowler’s Video Store series. After making the relevant domain concepts explicit, we focus our refactoring process on another aspect of domain semantics, studying contextual variance under the perspective of the following issues:
1. The Passage of Time;
2. Changes in the Video Classification;
3. Changes in Rental Prices and Terms.
Domain-Driven Design situates the domain model in a central and convergent role, tightly articulating semantics and syntax for problem definition, solution design and software implementation.
In this post, we bring the domain semantics to our refactoring process. We want a deeper perspective to analyse modularity problems and to direct improvements towards greater relevance to our design objectives.