GitHubで最も人気のあるパイソンで書かれたデザインパターン集は faif/python-patterns です。フォークス数は6.5k、スター数は34.5k(2022年7月現在)です。
有名なGoFのデザインパターン以外のパターンも紹介されています。各パターンのソースファイル1つのみで、行数は多すぎずコンパクトで分かりやすい方です。
しかし英語で書かれていて分かりづらかったためクローンして日本語に翻訳しました。
翻訳版は allneko-club/python-patterns にあります。
翻訳箇所
- README.mdの各パターンの解説
- サンプルスクリプトのコメント文
スクリプト実行中に表示される英語は一部翻訳しづらかったり、コードを修正する必要あるため翻訳しませんでした。
学ぶコツ
数学と同様、オブジェクト指向は抽象的な概念なので理解するのも、使いこなせる様になるになるのも時間がかかります。そのためオブジェクト指向に不慣れな場合は各パターンの目的を読んでも腑に落ちないことが多いでしょう。
様々なパターンのコードを何度も読んだり、コーディング経験を積むことで徐々に各パターンの目的やメリットが理解できる様になります。
UMLのクラス図やオブジェクト図を読める様になると全体像が把握しやすくなるのでおすすめです。
デザインパターンを初めて学ぶ人は以下の本がおすすめです。Javaで書かれていますがpythonの基本を学び終えた人なら、少し勉強すれば問題なく読めると思います。
リンク
“柔軟性が低く変更に弱いコードを、デザインパターンを使って変更に強いコードに書き換える”という実際の開発現場でありそうなストーリー性のある内容です。変更に弱いコードと変更に強いコードを比較できるため理解が深まりやすいです。