Designing with dependencies
Dependencies are not always obvious. If a project uses a library, such as how the logging project uses the unit test library, then that’s an easy dependency to spot. The logging project depends on the unit test library to function correctly. Or in this case, only the logging tests depend on the unit test library. But that’s enough to form a dependency.
Another easy dependency to spot is if you need to call another service. Even if the code checks to see if the other service is available first before making a call, the dependency still exists.
Libraries and services are good examples of external dependencies. You have to do extra work to get a project to use the code or services of another project, which is why an external dependency is so easy to spot.
Other dependencies are harder to spot, and these are usually internal dependencies within the project. In a way, almost all the code in a project depends on the rest of the code doing...