SSブログ

技術書の理解レベル(2) [プログラマー現役続行]

3月28日(土)にJava読書会に参加した際に、技術書の理解レベルに関して、1つの良い例があったので簡単に紹介します。(なお、みなさんの手元に『Effective Java 第2版』があるという前提で書いています)

『Effective Java 第2版』の項目74「Serializableを注意して実装する」では、「継承のために設計されたシリアライズ不可能なクラスに対して、パラメータなしコンストラクタを提供することを検討すべきです」(281頁)と述べられています。しかし、「クライアントが提供する情報が不変式を確立するために必要ならば、パラメータなしコンストラクタを使用することが除外されます」(282頁、2行目)とも述べられています。そこで、パラメータありコンストラクタしかなく、シリアライズ不可能で拡張可能なクラスに関して、そのサブクラスをシリアライズ可能にするための方法が282頁と283頁に説明されています。

この部分の説明を読んで理解するには、シリアライズの仕組みを理解している必要があります。シリアライズに関する知識がなければ、例として示されているコード(AbstractFooFoo)を理解することはできません。コードの意味を理解するためには、最低限の知識として、『プログラミング言語Java 第4版』の20.8.3節「シリアライズとディシリアライズの順序」(485頁)に書かれている内容を知識として持っている必要があります。Java読書会では、その節の内容を口頭で説明することでコード例をみなさんに理解していもらいました。

『Effective Java 第2版』の「訳者まえがき」(vii頁)で、私自身は、読者に対して次のように述べています。
本書は、初心者向けではありません。『プログラミング言語Java 第4版』に書かれている内容程度は、理解している必要があります。

『Effective Java 第2版』が良い本だからと薦められて、初心者がいきなり読んで理解できなくて、途中で挫折するのは当然だと思います。

そのために、多くのソフトウェアエンジニアにきちんとJava言語を理解してもらうたことを目的として、社内(関連グループ会社向け)では『プログラミング言語Java 第4版』から始めて、『Effective Java 第2版』まで終わるという教育コースを開催しています。

http://yshibata.blog.so-net.ne.jp/2008-10-03
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0