Yabu.log

ITなどの雑記

Effective Java 3rd に新規追加・削除された項目

Effective Java (3rd Edition)

Effective Java (3rd Edition)

英語版を買ってTDDの合間に読書中です。(どっちもJavaなのがいいですね) 項目数は + 14 -2 って感じで項目が12個増えて 90になりました。

introductionの節で新規追加された項目がまとめてありますが、項目名まで書かれていなかったので自分でまとめてみました 2ndと見比べてみると、消えてる項目もいくつか見つかりました。

1.7以降の知見が含まれるもの(基本新規追加)

Lambdas(Java 8)

  • 42 Prefer lambdas to anonymous classes
  • 43 Prefer method references to lambdas
  • 44 Favor the use of standard functional interfaces

Streams(java 8)

  • 45 Use streams judiciously
  • 46 Prefer side-effect-free functions in streams
  • 47 Prefer Collection to Stream as a return type
  • 48 Use caution when making streams parallel

Optionals(java 8)

  • 55 Return optionals judiciously

default method in interface(java 8)

  • 21 Design interfaces for posterity

try-with-resources(java 7)

@SafeVarargs(Java 7)

  • 32 Combine generics and varargs judiciously

Modules (Java 9)

  • 15 Minimize the accessibility of classes and members(新規追加ではなく継続)

introductionで特に紹介はなかったが増えているもの

消えたもの

  • 旧21 Use function objects to represent strategies
    • 42に統合された
  • 旧73 Avoid thread groups

雑感

  • Java 8,9の新機能はあまりきちんと触っていないので十分予習してから読みます。
  • 仕事でほとんどJavaを触っていませんが、過去にジェネリクスの可変長引数のシグネチャを作ろうとして詰んだことがあります 多分32 Combine generics and varargs judiciouslyはそれに関連しそうな気がします。