🏞 (image)

What OO Fails to Do What object oriented programming fails to do is express collaborations between objects. To show you exactly what I mean, let’s take a look at two system operations (two use cases) requiring the same group of objects collaborating with each other. (…) DCI to the Rescue DCI is a paradigm invented by Trygve Reenskaug (the inventor of the MVC pattern) to solve these problems. (via Data Context Interaction: The Evolution of the Object Oriented Paradigm – SitePoint )...

🏞 (image)

via The Clean Architecture | 8th Light by “Uncle” Bob Martin The outer circles are mechanisms. The inner circles are policies. The overriding rule that makes this architecture work is The Dependency Rule . This rule says that source code dependencies can only point inwards . Entities Use Cases Adapters (Controllers, Gateways, Presenters) Frameworks Only Four Circles? No, the circles are schematic. You may find that you need more than just these four....

🏞 Keynote: Architecture the Lost Years

Keynote: Architecture the Lost Years by Robert Martin @ Ruby Midwest 2011 (also on YouTube … and a few weeks later, without slides , on The “A” word. A Discussion About Architecture in a Software Craftsmanship conference ) Images clipped together from… The “Presenter” and “View Model” at 35:28 “The whole Enchilada!” at 37:50 “The Database is a Detail!” at 42:26 Elements summary: Entities — Generic application agnostic data and business rules (e....

📜 Good architecture

A good architecture allows major decisions to be deferred! Robert Cecil Martin Or putting it in another way… A good architecture maximizes the number of decisions NOT made.

🔗 SOLID (object-oriented design)

SOLID (object-oriented design) A mnemonic acronym introduced by Robert C. Martin in the early 2000s: S : Single responsibility principle — “an object should have only a single responsibility.” O : Open/closed principle — “software entities should be open for extension, but closed for modification.” L : Liskov substitution principle — “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” (see also design by contract ) I : Interface segregation principle — “many client specific interfaces are better than one general purpose interface....