Java読書会BOF「Javaコードアンチパターン 初級からプロまで知っておきたいミスと回避策」を読む会 第2回議事録
[ 戻る ]
=====================================================
Java読書会BOF「Javaコードアンチパターン 初級からプロまで知っておきたいミスと回避策」を読む会 第2回議事録
=====================================================
.. csv-table:: 開催概要
"日時", "2026年3月28日 10:00 - 17:00"
"場所", "川崎市平和館 研修室"
"出席者(敬称略)", 高橋(徹)、遠藤、岩室、井上、加藤、平山、吉本、高橋(智)(書記)"
第2章: 式
========
2.7 No.7:非短絡評価の論理演算子を使う
---------------------------------
* P41 「偶然の編集」の意味は?
* 英語原文には何と記述されているのだろうか?
2.8 No.8:&&と||の混同
--------------------
* P46,47 「プッシュダウン」の英語の意味や、日本語訳としては何になるだろうか?
* IT系での英語の意味としては、こちら側ではなく、向こう側に処理をさせる、という感じだが。。。
* 例として
* https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/Configuring-data-quality.htm
* https://docs.oracle.com/cd/F82307_01/integrations/predicate-pushdown.html
* 英語UIのEclipseでは「否定のプッシュダウン」はどのように表記されているのか?
2.9 No.9:可変長引数呼び出しの誤った使い方
------------------------------------
2.9.1 あいまいな可変長引数呼び出し
------------------------------
* P47 拡張for文で、配列の引数の「data」がnullだった場合、for文自体が実行されないのではないか?
* Java言語仕様を確認
* 宿題!!
2.10 No.10:条件演算子と可変長引数呼び出し
-------------------------------------
* P53 回避方法の欄に掲載されている2行のコードは断片だが、コード全体(メソッドの実装全体と、それを呼び出すコード)はどうなっているのか?
* 果たして本当に回避方法として正しく動作するのだろうか?
* 宿題!!
2.11 No.11:重要な戻り値を無視する
------------------------------
* P55 コンパイル時に、戻り値を変数などで必ず受け取るように書かないと、エラー・警告になるプログラミング言語はあるのだろうか?
* 警告を出す言語はいくつかあるようだ(例:Swift)
* P57 InputStream.read()メソッドについて「複数回待つことがあります」とは具体的にはどのような挙動のことを指しているのか?
* 英語原文ではどのような文言になっているのか?
2.12 No.12:新たに作成したオブジェクトを使わない
------------------------------------------
* P59 URIの文字列の妥当性を確認する方法として、new URI(...)で例外キャッチする以外に何かあるのだろうか?
* Apache Commonsのユーティリティメソッドとかがあるかも?
* 宿題!!
まとめ
-----
* P65 「お勧めます。」は「お勧めします。」の誤植
第3章: プログラム構造
==================
3.1 No.15:不適切なif-else連鎖
---------------------------
* P70 世の中には、プロジェクトで"else if"自体を禁止にすることを推奨するひともいるらしい
* P70 switch式,switchパターンでは、条件の評価順序はコードの上から下の順番だよね?
* Java言語仕様を確認
* 宿題!!
3.2 No.16:前の条件に包含されている条件
----------------------------------
* P73 例として掲載されている包含関係のソースコード(instanceofとFizzBuzzの2種類)と同等のソースコードについて、最近のIDEのAI支援機能を使えば、特別な静的解析ツールやプラグインを使わなくても問題点を検出可能なのではないか?
* 宿題!!
3.3 No.17:switch文における意図しないフォールスルー
---------------------------------------------
* P76,77 「矢印構文」は英語原文ではどう記載されているのか?
* arrow syntaxか?
* Java言語仕様での「->」の正式名称は?
* 宿題!!
3.8 No.22:冪等なループ本体
------------------------
* P86 例として掲載されているhasPercentDメソッドのソースコードを最近のIDEのAI支援機能に渡せば、問題点を指摘可能なのではないか?
* 宿題!!
次回は、P92の「3.9.3 クラスの初期化順序」から。
[ 戻る ]