1,800円以上の注文で送料無料

Effective Java 第3版 の商品レビュー

3.7

4件のお客様レビュー

  1. 5つ

    1

  2. 4つ

    1

  3. 3つ

    0

  4. 2つ

    1

  5. 1つ

    0

レビューを投稿

2022/09/12

Javaを使う者としては読んでおくべきはないかと思い書店で目にして即購入。Javaを扱う上でどう書くべきかを知る上で刺激になる個所もあるが、いかんせん内容が難しい。翻訳された日本語が読みにくいのかもしれない。文字数を思い切って減らして、イラストを追加すればもう少し理解度が高まりそ...

Javaを使う者としては読んでおくべきはないかと思い書店で目にして即購入。Javaを扱う上でどう書くべきかを知る上で刺激になる個所もあるが、いかんせん内容が難しい。翻訳された日本語が読みにくいのかもしれない。文字数を思い切って減らして、イラストを追加すればもう少し理解度が高まりそう。そういうのは別の本に任せているのかもしれない。そして、本書はバイブル的な位置づけで、他書を読んでもっと詳しく知りたくなったときに戻ってくるべき拠り所となる本なのかもしれない。ただ、enum関連のあたりは自分でも気になっていた個所なのでとても参考になるし、使えるときが来たら使ってみたいと思う(戦略enumパターンとか)。

Posted byブクログ

2021/01/11

http://public-errata.appspot.com/errata/book/9784621303252/

Posted byブクログ

2020/05/28

Javaのベストプラクティスについて網羅的に解説している。1項目2~6ページ程度なので、コツコツと読み進めやすい。合計90項目。対象読者はJavaの構文やオブジェクト指向は一通り理解できているが経験が浅いというような人で、つまり完全な初心者向けの書籍というよりは中級者向けの書籍と...

Javaのベストプラクティスについて網羅的に解説している。1項目2~6ページ程度なので、コツコツと読み進めやすい。合計90項目。対象読者はJavaの構文やオブジェクト指向は一通り理解できているが経験が浅いというような人で、つまり完全な初心者向けの書籍というよりは中級者向けの書籍と言えるだろう。このことは最初にも触れられていた。各項目では、タイトルで原則を延べ、なぜそうしなければいけないのかということをアンチパターンとデザインパターンを交えながら説明するというフォーマットになっている。全体を通しての一貫した主張は公開したAPIは一度設計したら変更することができないのでパフォーマンスや利便性を損なう実装は避けるべきというものであり、これをセキュアに達成するための方法とアンチパターンが紹介されている。ただし、パフォーマンスに関しては不必要なチューニングは必ず悪になるという考え方で、チューニングする際には必要性の証明と前後でのプロファイリングを必ず行うことという原則も述べている。基本的に綺麗な設計は良いパフォーマンスに繋がるということが書かれており、読みやすく簡潔で明瞭なコードが好ましいというスタンスである。この本で紹介されている内容はAPIを設計する側の人間に向けられたものが多いが、その中でも繰り返し述べられていたのがオブジェクトの不変性の確保とスレッドセーフの保証である。これらはJavaを書き始めたばかりの人が一番見落としがちなことだとは思うので、これらについてのベストプラクティスにページを裂くのは非常に良いと思う。 まだ私の経験が浅いため、Javaのベストプラクティスとして書かれている内容に抜け漏れがないかという点については判断することができないが、多くの内容は直接的に役に立つ内容であった。私はひねくれ者なので本を読むときは悪い部分を探しながら読むのだが、この本に関しては本当にそれが無かった。他のレビューでは訳が悪いといったことも書かれていたが、文法として破綻していたり意味が通じないといった部分はほとんど無かった。あえて言えば、訳注が欲しい部分で不足していると感じる部分はある -- 例えば、(おそらく)reflexiveを反射的と訳しているがこれは数学の反射性のアナロジーか、もしくは、英語圏で一般的な概念なのだと思うが、日本語ではあまり一般的ではない気がする -- ので適切な訳注があるとより理解の助けになるといった一面はあると思うが悪い点とまでは言えない。 素晴らしく価値のある書籍だった。一言で表すならJavaの義務教育。

Posted byブクログ

2020/01/21
  • ネタバレ

※このレビューにはネタバレを含みます

自分の気になったところだけメモ。 第2章 メンバ変数のデータ型を決定する基本的な手順、不必要なオブジェクト生成を避ける手法が学べた。 第3章 標準ライブラリが渡されたオブジェクトをどのように識別しているかをequals,hashCode,toString,compareToなどのメソッドを通じて理解した。 クラス設計において、"クラスの意味あるフィールド"は、思った以上に重要。 第4章 継承すれば、サブクラスは、スーパークラスとともに変わっていかなければならないリスクがある。コンポジションを選ぶことにより、そのリスクから解放されると理解した。 第5章 当然だけど、ジェネリクスメソッドにおいて、メソッド内部で、メソッド呼び出し時に指定された型にキャストするんであればワーニングは無視できる理解した。 第8章 これも当然だけど、エラーは早めに返し、nullを返さない。オーバーロードは控えめに使う。 10章 エラーメッセージにエラー情報を含め、エラーが起きた時は、エラーアトミック性に努める。

Posted byブクログ