はじめに
Pythonにて美しい設計・コーディングを実践したく、読んだ書籍3選を紹介する。
想定読者
- Pythonのプログラミングに挑戦したい人。
- Pythonでの美しい設計・コーディングを0ベースで学習したい人。
- 大規模開発に耐えうるPythonの設計技術を学びたい人。
Pythonでの美しい実装を実現するために読んだ書籍3選
Pythonにて美しい設計・コーディングを学ぶ上で、以下の3冊の本が良かったです
- リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)、美しい・優れたコードの原理原則を学ぶのにおすすめである。
- 良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方、優れた設計を良いコード・悪いコード例にて、体系的に学ぶのにおすすめである。
- Effective Python 第2版 ―Pythonプログラムを改良する90項目、美しいコーディングを行うための、Python特有の記法を学ぶのにおすすめである。
【選定理由】1. 原理原則、2. 具体例事例、3. Python特有技術で理解を深めることができる
なぜ、「リーダブルコード」、「良いコード/悪いコードで学ぶ設計入門」、「Effective Python」の3冊が美しい設計・コーディングを学ぶのに良かったのかを説明する。
下記図は美しい設計を行うための知識の体系と各書籍のカバー範囲を示している。
- 美しいコーディングの原理原則を学び、
- 具体例にて体系的に理解を深め、
- Python特有の技術を理解することで、Pythonにて美しいコーディングを実現する。
「リーダブルコード」:1. 原理原則を学ぶ
「リーダブルコード」は美しい・優れたコーディングの基本的知識を学ぶことに適している。
「そもそも、美しく・優れたコーディングとは何なのか?何がそんなに嬉しいのか?」などの原理原則を学ぶことができる。
Pythonに限らず、すべてのプログラマーにおすすめできる名著である。
「良いコード/悪いコードで学ぶ設計入門」:2. 具体例を学ぶ
「良いコード/悪いコードで学ぶ設計入門」はオブジェクト指向プログラミングの設計技術を学ぶことができる。
本書が他の書籍と異なるのは、「良いコード」と「悪いコード」の具体例を踏まえつつ説明されている点である。
ダメなパターンを知りつつ、ゴールとなる良いコードを知ることができる。
本書はPythonにて記述されていないが、基本的にはオブジェクト指向に関しての書籍であり、Pythonに大いに役立てることができる。
もちろん「Pythonしかわからない!」という方でも、理解することができる内容である。
「Effective Python」:3. Python特有技術を学ぶ
「Effective Python」はPython特有のコーディング技術を学ぶことができ、美しい・優れたコーディングに役立てることができる。
内包表記やジェネレーター式など、Python特有のコーディングを学ぶことができる。
Pythonコーディングのベストプラクティス、ヒント、落とし穴が90項目紹介されている。
Pythonの初心者から中級者・上級者にステップアップするのに、非常におすすめの1冊である。
これら3冊を学習することで、1. 美しいコーディングの原理原則を学び、2. 具体例にて体系的に理解を深め、3. Python特有の技術を理解することができる。
【具体例】読み進め方
では実際に、どのように読み進めていくのが良かったかを説明する。
- 「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)」1番目に読む、はじめに、美しい・優れたコードの原理原則を理解する。すべてのプログラミング言語に共通する考えを学ぶ。
- 「良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方」2番目に読む、「リーダブルコード」で学んだ原理原則の元、優れた設計を良いコード・悪いコード例にて学ぶ。
- 「Effective Python 第2版 ―Pythonプログラムを改良する90項目」3番目に読む、Python特有のコーディング技術を学び、具体的にどのように実装するかのイメージを持つ。
まず始めに「リーダブルコード」を読み進めることで、美しい・優れたコードの原理原則を学ぶ。
ここでは、美しい・優れたコードの概念を理解することに専念する。
具体例のイメージがわからなくてもOKである。
その後、「良いコード/悪いコードで学ぶ設計入門」にて、「リーダブルコード」で学んだ設計の概念を具体例にて理解する。
ここで、「リーダブルコード」で抑えた原理原則をもとに、
- アンチパターン(悪いコード):やってはいけないコーディング
- 良いコード:やるべきコーディング
を体系的に学ぶ。
最後に「Effective Python」にて、Python特有の技術を学ぶ。
良いコードを実現するための、Pythonの技術を学ぶ。
あとはひたすら実践あるのみである。
コーディングの量を積んだ後に、これらの本に舞い戻ってくることも良い。
コーディングをこなしてきたからこそ、気づくこともあると思う。
PEP8も忘れずに目を通しておきたい。