CodeNewbie Community 🌱

Discussion on: The Pragmatic Programmer: A Pragmatic Approach

Collapse
 
jacobvarney profile image
jacobvarney • Edited

Until I worked with a system that was completely inaccessible when the database went down, because pages were rendered with html stored in a database table (correct me if I am wrong in assuming this is not orthogonal)

Since you asked, I tried to learn about the orthogonal principle and I believe what you're describing is a non-orthogonal application. If I were to try to suggest a more orthogonal design, the component serving HTML and the component managing the database would not be so coupled. I may just also be thinking of a simple MVC as the only example I can draw on right now ¯_(ツ)_/¯

I don't think the rest of the elements in your paragraph have to be non-orthogonal. Some of them may be "cohesive" enough that they constitute a single component. I think the key part would be that you could internally change how a component works (e.g. modify the implementation of a database, perhaps to optimize it) without impacting another component coupled with it (e.g. a software application does not depend on details of the implementation of the database). I also may be wrong!