Effective java 3版 読書会 9日目

実施日時:2019/2/20 22:00~23:00
対象範囲:項目37~項目41
参加者:yodai、yoridori、kassyi
形式:オンライン(discord)
   課題本を事前に読み、実業務と照らし合わせて記述内容の
   議論をする。

項目37 序数インデックスの代わりにEnumMapを使う
配列を使う場合は、序数を使って普通のforを使う形になる。
序数は使うべきではないので、174ページの例を使用する。
enumを利用する際、普通のmapでなくenummapを使うべき。

項目38 拡張可能なenumをインタフェースで模倣する
enumを拡張する事は不可だが、インタフェースで似たことができる
予め設計で、拡張の可能性がある事が予言できる場合は、インタフェースを
作成するべきと思われる。
欠点として、コードの重複が有っても発見できない

項目39 命名パターンよりアノテーションを選ぶ
アノテーションは、標準化されていないので、ツールが変わる場合は変更が必要になる可能性がある。
Junitはアノテーションでテストメソッドであるとかを区別できるので、アノテーションを上手く使う必要がある。
Q:テストでアノテーションを使うのか?
 ⇒Junitの場合、@Testとメソッドに付けるだけでテストは実行される。
業務では@Test位しか使わなかった。
まとめてテストしたいときに特別なアノテーションを使う事が多い
自前でフレームワークを作る時に命名パターンを作るが、それ以外には、自前のアノテーションを作成することは殆ど無い。
フレームワーク無しの環境でアノテーションを使う場合、
@Overrideや@WebServlet("/xxx")などが存在する。
フレームワークの例:
https://qiita.com/nifram/items/123ec5689da654b365aa
https://micronaut.io/

項目40 常にOverrideアノテーションを使う
オーバーライドする意思がある場合は@Overrideを付ける事

項目41 型を定義するためにマーカーインタフェースを使う
マーカーインターフェースとしてSerializableが有る。
型を意識する時はマーカーインターフェースを使う。
マーカーアノテーションの例として@Testや@Duplicateが有る。

協力:Tech Baton
https://tech-baton.studio.design/

この記事が気に入ったらサポートをしてみませんか?