202312091445 Rely on what you control
#newDon't design systems to rely on properties of things you don't control.1
A simple example of this is building an integration with a 3rd party. You may need to understand and implement specifics of an API that you don't control, but you should always write that code defensively and ensure that changes or bugs in their system won't affect yours. Of course, there are times when that system needs to be online for yours to operate correctly, but you can still ensure that your data isn't corrupted, or your users still have a good experience even though that other system is broken. Remember to 202312091449 Encapsulate at the boundary.
-
Thomas, D., & Hunt, A. (2019). The pragmatic programmer, 20th anniversary edition: Journey to mastery (Second edition) (pp. 42). Addison-Wesley. ↩