Functional Web Development with Elixir, OTP - Is OTP part of the entity layer?

To what extent?

One issue with a large part of the readership of Design Patterns: Elements of Reusable Object-Oriented Software is selective reading which focused on applying patterns and not much else.

Seems a lot of people were possibly skipping the Intent and Motivation sections and more importantly the Applicability and Consequences (benefits and liabilities, tradeoffs).

Also a significant value of patterns is to serve as a vocabulary for more precise and effective communication. It makes it possible to reference the pattern in the context of a solution without having to go into nitty gritty detail (repeatedly).

Even with SOLID - “principles” may be too strong, “guidelines” would be more appropriate. And even those guidelines are not context-free. Following those guidelines still makes certain tradeoffs - tradeoffs that may be acceptable in many circumstances, not so much in others.

It’s always important to consider context and understand the tradeoffs.

While you may not agree with every aspect of The SOLID Design Principles Deconstructed (2013) it is interesting to see them challenged (if you’re still following the SOLID principles and you regard yourself as a competent developer, you need to start giving them up).

An earlier discussion - applying SRP to Elixir:

1 Like