Robust Python読んだ
Robust Pythonという本を読みました。
どんな本か
You’ll journey through numerous ways to make Python clean and maintainable.
とあるように、Pythonでキレイでメンテしやすいコード書こうという本です。
なお、
This is not intended to be your first Python text
Pythonを初めて学ぶための本ではなく、基本的な構文(ループとか)の説明はありません。
扱う話題は、
- 型ヒント
- 入門、Collection、Typecheckerのカスタマイズ、導入戦略
- 型定義
- 拡張しやすい実装の話
- 「セーフティーネット」の話
- 静的解析(pylint、dodgyによる機密情報ベタ書きの検知、banditによるセキュリティの確認)
- テスト(pytest、behaveによるBDD、HypothesisによるProperty-based testing、mutmutによるMutation esting)
などがあります。
なお、2021年に出版された本で、邦訳は(今のところ)ありません。
他の本
邦訳されている本に限っても、「Python初心者の一歩先」似たティストの本は激戦区で、
- エキスパートPythonプログラミング(Expert Python Programming)
- Fluent Python
- Effective Python
- Pythonハッカーガイドブック(Serious Python)
あたりが競合になりそうです。
これらの本と比べたRobust Pythonの特徴ですが、
- 他の本と比べて「Robust」の話題に特化。「Robust」に関係薄い話題は含まれない
- 他の本と比べて比較的新しい
- 厚さ的には(比較的)薄め
また、この本のテーマである「Robust」なコードに関しては
- リーダブルコード
- プログラミング作法
あたりと多少被りそうですが、Robust Pythonは良くも悪くもPython特化な点が差別化ポイントになりそうです。
Robust Pythonが扱っていない(そして他の本では扱っている)話題も多いので、Python始めた人に「二冊目」の本として読むのは微妙な気がします。
単に動くコードを超えて、メンテしやすいコードを書くための「三冊目」として読む・薦めるのが良いかもしれません。
その他
「きれいなコードとはなにか」「なぜきれいなコードが必要か」を扱う章があります。
その中で、「コードは非同期コミュニケーションだから意図を込めて、意図をわかるように書け」みたいな記載がお気に入りです。