Increasing velocity by modernizing a Python codebase
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/db4fd930-414c-4b14-8d5f-c72f72064660/3ee8ffa641c2194d4590da20bca8aa5e.png)
概要
- Ramp社の機械学習ワークフローのリポジトリのPythonコードベースを洗練させ、開発のベロシティを上げた話
- 具体的な取り組みは以下
- We adopted poetry for dependency management, which allowed us to manage a complex web of dependencies and ensure consistency across environments
- We adopted ruff for formatting and linting, which allowed us to enforce consistent formatting and catch small errors
- We adopted pytest for testing, which allowed us to catch corner cases and bad assumptions
- We adopted mypy for type checking, which allowed us to catch type-related bugs
- 弊社とかなり近そう
- mypy
- mypyを初めて実行すると、数百ものエラーが出てきて、全てを一度に修正するのは困難なので、エラーに対してを追加してから、徐々に旧コードを修正していくいった
- uffのようにmypyには自動でを追加するオプションがないため、このプロセスを自動化するスクリプトを書いた