Is Stable However Related in Contemporary Software Architecture?

Daniel Orner published a recent post arguing that Solid ideas are however the basis for modern-day software package architecture. In accordance to Daniel, while the follow of application advancement has transformed in the previous 20 years, Stable principles are nevertheless the basis of great style. The creator describes how they also utilize to useful programming and microservices architecture, with illustrations.

Reliable is a mnemonic and acronym for five application style and design concepts enumerated in 2000 by Robert C. Martin. In accordance to the article’s author, these “Good rules are a time-examined rubric for producing great computer software” and can be tailored to present day software engineering techniques.

The creator points out some suitable developments in the software program marketplace because the development of the Good ideas. Dynamically-typed languages and paradigms these types of as purposeful programming or metaprogramming have gained traction and are a common sight in application today. He adds that microservices and software package-as-a-provider created the monolithic deployment pattern fewer prevalent and states that numerous ideas ruled by Good are no for a longer time generally used by as quite a few programmers as before.

Other features of software style have not improved, the author states. Individuals carry on to compose and modify code, it nevertheless is organised into modules, and there is even now a want to outline its visibility in accordance to its meant consumer base.

The author proposes to reword the initial Good basic principle definitions so that they develop into relevant to item-oriented (OOP), functional (FP), or multi-paradigm programming and, at times, to microservices-based mostly programs.


The writer restates the solitary obligation basic principle as “every single module ought to do a single issue and do it well”. Moreover OOP, the new definition is also relevant to purposeful programming and microservice design.

The open-closed theory gets “you should be able to use and increase to a module devoid of rewriting it”. It is completed in FP by making use of “hook factors” and is a normal characteristic of OOP.

The author defines the Liskov substitution theory as “you must be capable to substitute just one matter for an additional if those people items are declared to behave the very same way”. It now applies much too to dynamic programming languages with the enable of duck typing or filter features.

As redefined by the creator, the interface segregation theory will become “don’t demonstrate your clients more than they will need to see”. In other text, only doc what your client requirements to know. This definition is also applicable to microservices by independent deployments or independent documentation sets.

The definition of the dependency inversion principle remains the exact: “depend on abstractions, not concretions”. The creator believes that abstraction is still an essential concept, implementing to OOP, FP, and even microservices (employing concept passing in its place of direct interaction).

Other authors have diverse perspectives concerning microservices. Paulo Merson argues that Good concepts are superior for OOP but do not thoroughly implement to microservices. Consequently, Paulo proposes a different set of principles for microservice structure: Beliefs. These are: interface segregation, deployability, function-driven, availability around consistency, loose-coupling, and single accountability.