カーキ色はヒンディー語らしい

技術記事は https://zenn.dev/notrogue

Robust Python読んだ

learning.oreilly.com

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のカスタマイズ、導入戦略
  • 型定義
    • Enum、dataclass、継承、duck typing、Protocol、pydantic
  • 拡張しやすい実装の話
  • セーフティーネット」の話
    • 静的解析(pylint、dodgyによる機密情報ベタ書きの検知、banditによるセキュリティの確認)
    • テスト(pytest、behaveによるBDD、HypothesisによるProperty-based testing、mutmutによるMutation esting)

などがあります。

なお、2021年に出版された本で、邦訳は(今のところ)ありません。

他の本

邦訳されている本に限っても、「Python初心者の一歩先」似たティストの本は激戦区で、

あたりが競合になりそうです。

これらの本と比べたRobust Pythonの特徴ですが、

  • 他の本と比べて「Robust」の話題に特化。「Robust」に関係薄い話題は含まれない
    • 具体的には、C言語による拡張や、ジェネレータ・イテレータ、並行・並列プログラミング、パッケージの作成
  • 他の本と比べて比較的新しい
    • Robust Pythonは2021年
    • エキスパートPythonプログラミングは原著(4版)が2021年、邦訳(3版)は2019年
    • Fluent Pythonは2015年(2版は準備中)
    • Pythonハッカーガイドブックは邦訳2020年、原著は2018年
  • 厚さ的には(比較的)薄め

また、この本のテーマである「Robust」なコードに関しては

  • リーダブルコード
  • プログラミング作法

あたりと多少被りそうですが、Robust Pythonは良くも悪くもPython特化な点が差別化ポイントになりそうです。

Robust Pythonが扱っていない(そして他の本では扱っている)話題も多いので、Python始めた人に「二冊目」の本として読むのは微妙な気がします。

単に動くコードを超えて、メンテしやすいコードを書くための「三冊目」として読む・薦めるのが良いかもしれません。

その他

「きれいなコードとはなにか」「なぜきれいなコードが必要か」を扱う章があります。

その中で、「コードは非同期コミュニケーションだから意図を込めて、意図をわかるように書け」みたいな記載がお気に入りです。