The King's Museum

ソフトウェアエンジニアのブログ。

【Effective Java】第1章:はじめに

追記:2018年1月21日

Effective Java 3rd Edition を踏まえて内容をアップデートした記事を書きました。

こちらをご覧ください。

www.thekingsmuseum.info


第一章は前置き話がメイン。

第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版を読んでいるのだけど、行間がもう少し空いてると読みやすいなぁ、、、(組版の話)

(c) The King's Museum