This post shares in detail the Dropbox team’s rationale behind migrating their code to static type checking; challenges the team faced through the process & how they navigated those; various approaches they used for adoption internally; and the impact it made on the engineering the team’s productivity. A few benefits that convinced the team to go full throttle with this:
- A type checker finds many subtle (and not so subtle) bugs
- Refactoring is much easier
- Type checking provides quick feedback and allows to iterate faster.
- There is no need to write fragile, hard-to-maintain unit tests that mock and patch the world to get quick feedback.
- IDEs and editors such as PyCharm and Visual Studio Code take advantage of type annotations to provide code completion, to highlight errors, and to support better go to definition functionality
It is a great case study of the usefulness of static type checking in Python for large-scale projects.
20 mins read