追記:2018年1月21日
Effective Java 3rd Edition を踏まえて内容をアップデートした記事を書きました。
こちらをご覧ください。
第一章は前置き話がメイン。
第1章:はじめに
この本の特徴は多くのデザインパターンとイディオムを示している点。それに加えて、アンチパターンと代替案が示されている。
この本の規則は明瞭性(clarity)と簡潔性(simplicity)という原則から導かれている。 あらゆる再利用可能なコンポーネント(モジュール)は、その挙動でモジュールの利用者を驚かせてはいけないし、その規模は小さくあるべき。
また、コードはコピーされないで、再利用されるべき。
依存関係は最小に、エラーはなるべく早い段階で検知できるようにし、実行時ではなく、コンパイラ段階で検知できるように努める。
最初に規則を学んでときにそれを破る(守破離)。
明瞭で正しく再利用可能で強固で柔軟性があるように書けば、たいていは必要なパフォーマンスが得られる。
Java の4種類の型
- インタフェース(interface, enum)
- クラス(class)
- 配列(array)
- 基本データ(primitive)
クラスのメンバーには4種類
- フィールド
- メソッド
- メンバークラス
- メンバーインタフェース
メソッドのシグネチャにメソッドの戻り値は含まれない(知らなかった…)
この本では『Java 言語仕様』とは異なる用語の用い方をしている。
- サブクラス化(subclassing)=> 継承(inheritance)
- インタフェースを継承(inheritance) => インタフェースを実装(implements) or 拡張(extend)
- デフォルトアクセス(default access) => パッケージプライベート(package-private)
API は、クラス、インタフェース、コンストラクタ、メンバー、シリアライズ形式を指している。これらを通してプログラマは各種モジュールアクセスする。
API の利用者をユーザーと呼び、API の実装を保持するクラスをクライアントと呼ぶ。
API 要素はクラス、インタフェース、コンストラクタ、メンバー、シリアライズ形式と総称で、API 作者がサポート義務を負う要素。
ちなみにこれらの要素が Javadoc で標準出力されるのは偶然ではなく意図的にそうなっている。
感想
日本語版 Effective Java 第2版を読んでいるのだけど、行間がもう少し空いてると読みやすいなぁ、、、(組版の話)