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 クラスの初期化順序」から。


[ 戻る ]