Zack Williams | 3645191 | 2022-03-04 20:31:37 -0700 | [diff] [blame] | 1 | Design Guide |
| 2 | ============ |
| 3 | |
| 4 | Make the obvious way the right way |
| 5 | ---------------------------------- |
| 6 | |
| 7 | A developer coming to a new-to-them project should be able to quickly learn the |
| 8 | correct way to interact with a project's code, and the "path of least |
| 9 | resistance" should also be the correct way to make changes to a project. |
| 10 | |
| 11 | Build on the shoulders of giants |
| 12 | --------------------------------- |
| 13 | |
| 14 | Another way of saying this is: "Avoid reinventing the wheel". |
| 15 | |
| 16 | If there is (acceptably licensed and maintained) code out available out there |
| 17 | that could be used to accomplish a task, consider using it. |
| 18 | |
| 19 | External Dependencies |
| 20 | --------------------- |
| 21 | |
| 22 | Upstream code changes over time, and you should design your projects to be able |
| 23 | to deal with this change. |
| 24 | |
| 25 | |
| 26 | Lifecycle |
| 27 | """"""""" |
| 28 | |
| 29 | Testing against new versions |
| 30 | '''''''''''''''''''''''''''' |
| 31 | |
| 32 | You should embrace tools that allow you to test against upgraded dependencies. |
| 33 | |
| 34 | One example of a tool that lets you do this easily is ``tox``, which can handle |
| 35 | running a unit test suite against multiple versions of the Python language. |