wivern ロゴ

サイバーセキュリティ&人工知能研究所

サイバーセキュリティや人工知能(機械学習等)を中心に、最新技術を研究しています。


CODE COMPLETE 第2版(上)(下)

名著シリーズ(1)

CODE COMPLETE 第2版(上)(下)

[目次]
■上巻
はじめに
第1部 基礎を固める
 第1章 ソフトウェアコンストラクションへようこそ
 第2章 ソフトウェア開発への理解を深めるメタファ
 第3章 2回測って、1度で切る:上流工程の必要性
 第4章 コンストラクションの重要な決断
第2部 高品質なコードの作成
 第5章 コンストラクションにおける設計
 第6章 クラスの作成
 第7章 高品質なルーチン
 第8章 防御的プログラミング
 第9章 擬似コードによるプログラミング
第3部 変数
 第10章 変数の使用
 第11章 変数名の力
 第12章 基本的なデータ型
 第13章 特殊なデータ型
第4部 ステートメント
 第14章 ストレートなコードの構成
 第15章 条件文の使用
 第16章 ループの制御
 第17章 特殊な制御構造
 第18章 テーブル駆動方式
 第19章 制御構造の問題

■下巻
はじめに
第5部 コードの改良
 第20章 ソフトウェアの品質
 第21章 コラボレーティブコンストラクション
 第22章 デベロッパーテスト
 第23章 デバッグ
 第24章 リファクタリング
 第25章 コードチューニング戦略
 第26章 コードチューニングテクニック
第6部 システムの考察
 第27章 プログラムサイズが及ぼす影響
 第28章 コンストラクションの管理
 第29章 統合
 第30章 プログラミングツール
第7部 ソフトウェア職人気質とは
 第31章 レイアウトとスタイル
 第32章 読めばわかるコード
 第33章 個人の資質
 第34章 ソフトウェア職人気質とは
 第35章 さらに情報を得るには
参考文献

[書評]
言わずと知れた、プログラマーにとって伝説的名著の紹介です。

分厚い上に二分冊ということもあって、他の名著と一緒に永らく積ん読状態でしたが、会社の新人向けの読書会に本書を採用して、自分で自分を読まざるをえない状況に追い込み、週一で22週かかりましたが、やっと上下巻を読了しました。

上下二分冊もかけて、主に
「コンストラクション(詳細設計、コーディング、デバッグ、単体テスト)」
についての議論がなされています。

プログラムの勉強を始めて1、2年で自分の設計思想やプログラミング・スタイルに悩み始めた人が、本書の理想的な対象読者だと思います。

第2版になって、比較的新しい内容構成になっています。
「コラボレーティブコンストラクション(ペアプログラミング等)」、「リファクタリング」や「テスト」といった最近では当たり前になりつつあるソフトウェアの品質向上方法についても言及されています。

上下巻を通して、長年第一線でプログラマーとして仕事をしてきた人には、「何をいまさら」的な内容や構成になっていますが、自分の設計思想やプログラミング・スタイルの是非を再確認する意味でも読んで損はないと思います。

コードのサンプルが Java や VisualBasic や C++ で書かれていますので、これらの中からどれかひとつの言語は知ってる方がベター(理想は C++)ですが、それほど難しいコードサンプルでもないので、昨今流行りの LightweightLanguage 系の言語プログラマーでも問題はないと思います。

僭越ながらも、名著に難癖をつけさせてもらうと、

翻訳モノなので、日本人が日本語で書いたような、スラスラ読める文体ではありません。

また、構成が全体論から各論へというトップダウン的な書き方になっているために、序盤(上巻)の抽象的な内容を読み進めるのが辛くて、心が折れそうになるかも知れず、後半(下巻)の各論に至っては、もう完全に宗教論争です。

冒頭でも述べたように、分厚い上に二分冊という圧倒的なボリュームですので、読んでわからないところを質問できる先輩プログラマーや、一緒に読んで議論ができる経験年数の近い同僚プログラマーを巻き込むことをオススメします。

改めて言うまでもなく、読んで損のない名著です。
プログラマーとして生きて行くことを決めた人は、本書を読むことを一種の通過儀礼だと思って読むことを推奨します。

「Code Complete 読んだよ」って言えると、かっこいいですしね(笑)。

 Amazon  楽天ブックス


記述に際しては、細心の注意をしたつもりですが、間違いやご指摘がありましたら、こちらからお知らせいただけると幸いです。


→「たのしいバイナリの歩き方」
←「プログラマー"まだまだ"現役続行」


« 戻る



↓ Now Translating...



↑ Now Translating...

↓ Now Reading...

↑ Now Reading...

↓ Recommending...

↑ Recommending...