Pocket

 

今回は一冊の本を紹介します。

CODE COMPLETE 第2版 上
「CODE COMPLETE 第2版 上」はかなり昔に購入した本です。
 結構厚みがある本(上巻だけで628ページ!)なので「まとまった時間がとれたら読もう」と思っていましたが、買ってから何年経ったのでしょうか。。。
 今回そのまとまった時間がとれたので、気合い十分で読み始めましたが、なんで何年もそんなに避けていたのだろうかと思うほど、意外と一気に読めました。
 読み終わった感想を一言であらわすと「もっと早く読むべきだった」です。

 

内容について

<対象読者>
・経験豊富なプログラマ
・技術指導者
・独学で学んだプログラマ
・学生

<本書の主な利点>
※抜粋です
・ソフトウェアコンストラクションの完全な解説書
・すぐに使えるチェックリスト
・プログラミング言語にかかわらず応用できる概念
・豊富なサンプルコード

コンストラクションとは
“本書はソフトウェアのライフサイクルのおいての最もなじみの深い部分である「コンストラクション」に主眼をおかれています。
コンストラクションの主なアクティビティは、詳細設計、コーディング、デバッグ、統合、デベロッパーテスト(単体テスト、統合テスト)であり、一般にコンストラクションは「コーディング」「プログラミング」とも呼ばれています。”

(以上、本書からの引用です)

 本書はソフトウェア開発の中心的なアクティビティであるコンストラクションに重点が置かれて書かれています。上巻では、(準備として上流工程にも触れていますが)詳細設計からコーディングまでの品質の良いコードを書くための様々なテクニックやアドバイスが紹介されています。とても実践的で実際に使えるものばかりだと思います。
 例として使用されている言語は、C++, Java, VisualBasicが多く、サンプルコードではこの3言語のいずれかが使用されています。サンプルコードには、難解な機能は使用されていないため、その言語を知らなくても理解できるように工夫されています。本書ではプログラミングそのものについて言語に関係なく使用できるプラクティスが紹介されています。
 他の本では、サンプルコードが載っていても、分かり易くするために簡略化されていることがあったり、そのサンプルコードが良い例ではないこともあります。私にとって一番良かった点は、良い例と悪い例の両方が載っていてその理由が解説されていることです。プログラミングの原則を知ることができ、とても学ぶところが大きかったです。
 1つのテーマについてテクニックが豊富に紹介されていて、それぞれのテクニックについての解説やアドバイスがあり、どのテクニックを使えば良いかを検討する助けになります。例えば、変数の命名方法についてもいろいろな変数名の例を挙げ、良い変数名、悪い変数名、変数の種類(一般変数/ループ変数/状態変数/ブール変数)別の命名法、言語特有の命名規則のガイドライン等の解説があるので、使用する言語/変数の種類に応じた良い変数名の付け方が分かるようになります。私も、悪い変数名をつけてしまっていたことに気付かされたので、すぐコードを修正しました。また、悪いコードの例を示すだけでなく、どのようにそれを良いコードに直していくかについてもアドバイスしてくれています。例えば、ネストが深くなってしまった複雑なコードを改善していくアプローチについて、複数の改善案を提示し、サンプルコードを示しながら改善方法を解説、アドバイスされていて、直していくその過程も見れるので、とても参考になりました。

 プログラミングについては、自分ではこれまでも良いコードを書くように心がけてきましたが、それは職場の先輩に教わったり他人のコードを読んだりして身に付けたもので、独学に近いです。良いコードと言っても自分の思い込みでやってきたことなので、本当にそれが正しい書き方なのかは判断がつかないものもありましたが、本書を読んでみて、良いコードと悪いコード&その理由が明確になりました。プログラミングにおける様々なプラクティスもとても参考になりました。もっと前に本書に出会っていればもっと良いコードが書けていたのにと悔やまれます。でも、今更だとしても読んで良かったと思います。
 本書で学んだことを今後のプログラミングに活かして行こうと思います。

 本書はコンストラクションに関わるすべての人にオススメです。

 

 

Pocket

Comments are closed.