2 Comments

  1. I tend to avoid both of these design patterns, as I find they hide the actual implementation. According to me hiding the implementation increases the cyclomatic complexity by making it harder for junior and mid level developers to understand the logic behind the code. if a team member cannot understand the logic, the code will easily become obsolete, and will be thrown away once the original developer is no longer around.

    Like

    1. I actually do agree with you here and even heavyweight/senior/lead developers can find it sometimes difficult to follow more complex code of the amount of abstraction for the sake of dependency management is excessive. I read an article that was aimed at debunking, or at least making on reconsider, the SOLID principles by offering alternatives. The main theme was “just write good code”, which sounds arrogant to start with but I found myself agreeing. If it’s fast enough to produce, hits the spec (security and performance etc), and is easy to follow and maintain everything else is secondary, in my opinion

      Like

Comments are closed.