Design Guide
Make the obvious way the right way
A developer coming to a new-to-them project should be able to quickly learn the correct way to interact with a project’s code, and the “path of least resistance” should also be the correct way to make changes to a project.
Build on the shoulders of giants
Another way of saying this is: “Avoid reinventing the wheel”.
If there is (acceptably licensed and maintained) code out available out there that could be used to accomplish a task, consider using it.
External Dependencies
Upstream code changes over time, and you should design your projects to be able to deal with this change.
Lifecycle
Testing against new versions
You should embrace tools that allow you to test against upgraded dependencies.
One example of a tool that lets you do this easily is tox
, which can handle
running a unit test suite against multiple versions of the Python language.