Code Complete 第2版

プログラマー日記経由で。 第6章のみサンプル公開されているみたいですね。

http://www.atmarkit.co.jp/fdotnet/bookpreview/codecomp2nd_index/codecomp2nd.html
http://www.atmarkit.co.jp/fdotnet/bookpreview/codecomp2nd_06/codecomp2nd_06_01.html


mixiSHIMADA さんの日記で、出版されているのは知っていたのですが、なぜか原書だとばかり思い込んでいてリンクもたどらずにスルーしてしまっていました(^_^;)。初版ですでに十分厚い本でしたが、さらに厚くなって二分割されたようです。どんな風に書き足されるとこんな増えるのかは、公開されている6章を該当箇所と見比べるとなんとなく分かるような気がします。ここはもともとモジュールの章だったのですが、それを今風にクラスの章へとタイトルを変えて内容を充実させたようです。この6章に限って言えば、初版ではほとんど触れられることのなかったオブジェクト指向プログラミングへの対応…と言ったところでしょうか。


オブジェクト指向」教育において、ケイのメッセージ指向(あらため、間(ま)指向w)とストラウストラップ(や、メイヤー)のクラス指向の明確な分離を提案する私的に好感が持てるのは、

6.1.5 ADTとクラス

 ADTはクラスの概念の土台となる。クラスをサポートするプログラミング言語では、ADTをそれぞれ専用のクラスとして実装することができる。通常、クラスには他にも継承やポリモーフィズムという概念がある。クラスは「ADT+継承およびポリモーフィズム」として考えることもできる。

という(明示的にはされていないながらも)ストラウストラップの定義に従っているらしきところ、および、この記述に象徴されるように、一貫して、クラスを抽象データ型(ADT)のための手段と見なしているあたり。メッセージ送信とか、振る舞いとか、オブジェクトが中心…とかを持ち出して読者を混乱させることなく、安全な型の設計とその運用に徹しているところがグッドです。さすが、Code Complete!w もっとも、初版の当該章では抽象データ型についてページを割いていて、今回の改訂もこれに書き足すかたちで行なわれているので、そういう流れになるのは当然といえば当然なのですが…。


でもなんとなく、Code Complete にクラスの話とかがあるとイヤ〜ンな感じがします。なぜだか。