Java読書会BOF 「Effective Java 第3版」を読む会 第5回
[ 戻る ]
==========================================================================================
Java読書会BOF 「Effective Java 第3版」を読む会 第5回
==========================================================================================
"日時","2019年4月13日 10:00 - 17:00"
"場所","川崎市教育文化会館 第3会議室"
"出席者(敬称略)","高橋(徹)、高橋(智)、岩室、今井、井上、小棚木、長谷川、平山、上村、大部(書記)"
**第8章 メソッド**
======================================================================
**項目50 必要な場合、防御的にコピーする**
----------------------------------------------
- P.235 どんなJavadocを書くべきか、Javadoc付きのコードサンプルを白紙スペースに書いて欲しかった。
- 他に防御的コピーを行っているサンプルがあるのか探してみる。(宿題!!)
**項目51 メソッドのシグニチャを注意深く設計する**
----------------------------------------------
- P.237 LinkedHashMapの場合は順序があるため代わりにMapを使うと都合が悪いこともある。
**項目52 オーバーロードを注意して使う**
----------------------------------------------
- P.242 後者はコンパイルされません => コンパイルエラーになる、の意味。
**項目53 可変長引数を注意して使う**
----------------------------------------------
- P.245 「不格好ことです」は「不格好なことです」の誤植。
**項目54 nullではなく、空コレクションか空配列を返す**
----------------------------------------------
- P.247 原文では「is」が斜体になっている。(It is possible...)だということです、に込められている?
- P.248 [Shipilev16] => P.373では[Shipilev]となっており16がない。誤植。
- [Shipilev16]のブログを読んで、次回だれか解説。(宿題!!)
- http://shipilev.net/blog/2016/arrays-wisdom-ancients/
**項目55 オプショナルを注意して返す**
----------------------------------------------
- P.253 インスタンスフィールドにOptionalを持たせない。
- 標準ライブラリでOptionalを返すものは?
- 戻り値にOptionalを使用しているAPIを探す。(宿題!!)
**項目56 すべての公開API要素に対してドキュメントコメントを書く**
----------------------------------------------
- P.254 [Javadocguide]は[Javadoc-guide]。誤植。
- P.256 {@code ... == 0}.のように、{}で囲む。誤植。
- Java 10,11,12で動くか確認する。-tag "implSpec ..."(宿題!!)
- P.257 {@literal Mrs. Peacock}.で囲むところ。
- 訳本と原文でサンプルコードが全く異なる。
- 原文が後で変わった可能性あり。
**第9章 プログラミング一般**
======================================================================
**項目57 ローカル変数のスコープを最小限にする**
----------------------------------------------
**項目58 従来のforループよりもfor-eachループを選ぶ**
----------------------------------------------
- P.264 for-eachのコード中の「:」は英語で「in」と読む。
**項目59 ライブラリを知り、ライブラリを使う**
----------------------------------------------
- P.264 Java 7では、RandomよりThreadLocalRandomを使う。
- 使うべきライブラリをどうやって探すのか。
- ググる。あると思って探す、リストアップしてるだけのGitHubなどある。
**項目60 正確な答えが必要ならば、floatとdoubleを避ける**
----------------------------------------------
**項目61 ボクシングされた基本データ型よりも基本データ型を選ぶ**
----------------------------------------------
- P.274 ラムダだと気づかない?
**項目62 他の型が適切な場所では、文字列を避ける**
----------------------------------------------
**項目63 文字列結合のパフォーマンスに用心する**
----------------------------------------------
- P.279 +演算子でStringを繋ぐと、コンパイルでStringBuilderのappendになる。
- ループ内で、StringBuilder -> Stringを毎回行うところがパフォーマンス悪化につながる。
- 「一つずつ文字列を処理してください。」とは、具体的にどのような意味なのか。
- 結合行わずに、表示などの処理をループ内で毎回行う、結合しないで処理を行うということか。
**項目64 インタフェースでオブジェクトを参照する**
----------------------------------------------
- P.280 LinkedHashSetは順番があるので、LinkedHashSetのままのほうがいいのでは。
- 今ならVarで書くべきか。
- メソッドの戻り値のときはインターフェースにしておいて、それ以外のローカル変数ならVarでいいか。
- この本のバージョンではまだVarは無かった。
- PrimitiveをVarに入れてもボクシングが起こらないことについて確認する(宿題!!)
**項目65 リフレクションよりもインタフェースを選ぶ**
----------------------------------------------
.. note:: 次回は p.285 から。
(以上)
[ 戻る ]