Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In theory.

In practice, you often end up with larger changes which are mostly janitorial. Bumping a version of a log library across the infrastructure, or a version of a serialization system. This simplifies dependency convergence and a best handled as if they are cross-project changes.

The other problem is that over time, good factoring tend to deteriorate. A large software project will invariably have people with different brains working on it, and they'll have different needs for the factoring. So the project naturally pushes itself toward situations where cross-project changes become a necessary thing.



We already have tools that handle this for us for OSS libraries, such as dependabot etc.

Good factoring can probably be quantified too: dependency chains should be shallow and graph connectivity should be low. The more dependants a module has, the more stable its API contract should be.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: