Skip to main content

Home/ Coders/ Group items tagged pitfalls software architecture

Rss Feed Group items tagged

Fabien Cadet

Service Oriented Agony | 8th Light, 2012-02-01 by Bob Martin - 7 views

  • The structure seems obvious to system designers who have grown tired of single monolithic systems and want to break those systems up into components and services. What could be more natural than to break the system along the lines of data base managment?
  • Unfortunately this is a huge violation of the Single Responsibility Principle — or its big brother the Common Closure Principle.
  • These principles tell us to group together things that change together, and keep apart things that change for different reasons.
  • ...6 more annotations...
  • When you separate things that change for the same reasons, you have to make changes in many different places in the system.
  • So it’s a lot of work just to get anything working.
  • Moreover, when you group together things that change for different reasons, you expose the components of the system to collateral damage, thrashing, CM collisions, and a whole host of other problems.
  • So what’s the solution? First of all, I question whether the system needed to be partitioned into services.
  • Services are expensive and complicated, you should only create them if you absolutely need to. It’s always easier to live in a single process. Remember Martin Fowler’s first law of distributed objects: Don’t distribute your objects.
  • Many systems could be streamlined, and development made much faster, if the system designers paid more attention to the Single Responsibility Principle.
1 - 1 of 1
Showing 20 items per page