DEV Community

Discussion on: What are the least intuitive fundamentals and best practices in software development?

Collapse
 
remojansen profile image
Remo H. Jansen

Software principles, design patterns, and practices should never be considered as a law that one must follow at all times. These are just heuristics. They are guidelines that we should apply carefully and only in the right amounts. For example, if we take the DRY principle to the extreme, we are more likely to introduce too many abstractions and many times the wrong abstraction is worst than code duplication. In my experience, the same can be said about almost every other software principle. So my recommendation is never to follow principles blindly and to use them with moderation and judgment. I call this idea the The Yin and Yang principle of software architecture.