Understanding Dependencies
You need them, but you don't want them.
I am software engineer now for more than 10 years and I read tons of books, articles and papers on this topic. But thinking back and connecting dots, I think the most significant article contributing to a boost of my knowledge and skill was:
Design Principles and Design Patterns written by Robert Martin.
Reading this, I realized (beside other important things) that understanding how to manage dependencies is crucial for constructing good software systems.
Why? Because dependencies ^= complexity and reducing the complexity directly contributes to improvements in almost any thinkable software -ility. For instance:
reusability - reusing something with lot of dependencies is difficult, because most likely it will not fit in a new context.
understandibility - systems with less dependencies are easier to understand, because parts of the system can be analyzed in isolation.
flexibility - systems with less dependencies are flexible, because the changes have better chances to stay isolated in a small part of the system.
Read more about:
BlogsAbout the Author(s)
You May Also Like