プロジェクト

全般

プロフィール

コードレビュー #3414

完了

ND10070_開発_運賃契約区分情報 コードレビュー 第2段

渡邉 拓英 さんが約1年前に追加. 約1年前に更新.

ステータス:
終了
優先度:
通常
担当者:
開始日:
期日:
進捗率:

0%

予定工数:
実開始日:
DD名:
INCLUDE:
DSN:
バグ区分:
QA分析:
方針(第一貨物):
実終了日:
ツールのバージョン:
AsIsSource行:
進捗計画:
設計・開発者:
画面ID:
機能区分:
機能ID:
レビュー指摘区分:
検査完了日:
検査依頼日:

ファイル

clipboard-202509091010-o9qem.png (102 KB) clipboard-202509091010-o9qem.png 渡邉 拓英, 2025-09-09 10:10 午前
clipboard-202509091025-1umrq.png (6.68 KB) clipboard-202509091025-1umrq.png 渡邉 拓英, 2025-09-09 10:25 午前
clipboard-202509091334-vpdp5.png (46.7 KB) clipboard-202509091334-vpdp5.png 渡邉 拓英, 2025-09-09 01:34 午後
clipboard-202509091422-1qvsg.png (10.9 KB) clipboard-202509091422-1qvsg.png 渡邉 拓英, 2025-09-09 02:22 午後
clipboard-202509091422-bc0yr.png (14.6 KB) clipboard-202509091422-bc0yr.png 渡邉 拓英, 2025-09-09 02:22 午後
clipboard-202509091525-1ygdd.png (27.4 KB) clipboard-202509091525-1ygdd.png 渡邉 拓英, 2025-09-09 03:25 午後
clipboard-202509091529-cq6kt.png (72.9 KB) clipboard-202509091529-cq6kt.png 渡邉 拓英, 2025-09-09 03:29 午後
clipboard-202509091536-lpymb.png (8.68 KB) clipboard-202509091536-lpymb.png 渡邉 拓英, 2025-09-09 03:36 午後
clipboard-202509091551-cvrz8.png (3.1 KB) clipboard-202509091551-cvrz8.png 渡邉 拓英, 2025-09-09 03:51 午後
clipboard-202509091551-wvg71.png (8.41 KB) clipboard-202509091551-wvg71.png 渡邉 拓英, 2025-09-09 03:51 午後
clipboard-202509091554-i6wpa.png (65.5 KB) clipboard-202509091554-i6wpa.png 渡邉 拓英, 2025-09-09 03:54 午後
clipboard-202509091557-rjmjh.png (12.3 KB) clipboard-202509091557-rjmjh.png 渡邉 拓英, 2025-09-09 03:57 午後
clipboard-202509241140-tyhfg.png (26.7 KB) clipboard-202509241140-tyhfg.png 渡邉 拓英, 2025-09-24 11:40 午前
clipboard-202509241142-mts6m.png (22.2 KB) clipboard-202509241142-mts6m.png 渡邉 拓英, 2025-09-24 11:42 午前
clipboard-202509241252-he8uf.png (3.6 KB) clipboard-202509241252-he8uf.png 渡邉 拓英, 2025-09-24 12:52 午後
clipboard-202509241253-6i5ok.png (18.1 KB) clipboard-202509241253-6i5ok.png 渡邉 拓英, 2025-09-24 12:53 午後
clipboard-202509241300-iaupi.png (10.6 KB) clipboard-202509241300-iaupi.png 渡邉 拓英, 2025-09-24 01:00 午後
clipboard-202509241302-jovy1.png (41.7 KB) clipboard-202509241302-jovy1.png 渡邉 拓英, 2025-09-24 01:02 午後
clipboard-202509241310-zgcpo.png (9.6 KB) clipboard-202509241310-zgcpo.png 渡邉 拓英, 2025-09-24 01:10 午後
clipboard-202509241311-bgysk.png (9.49 KB) clipboard-202509241311-bgysk.png 渡邉 拓英, 2025-09-24 01:11 午後
clipboard-202509241322-070ro.png (362 KB) clipboard-202509241322-070ro.png 渡邉 拓英, 2025-09-24 01:22 午後
clipboard-202509241332-sqq4t.png (5.85 KB) clipboard-202509241332-sqq4t.png 渡邉 拓英, 2025-09-24 01:32 午後
clipboard-202509241332-fov41.png (9.49 KB) clipboard-202509241332-fov41.png 渡邉 拓英, 2025-09-24 01:32 午後
clipboard-202509241333-evd4w.png (1.93 KB) clipboard-202509241333-evd4w.png 渡邉 拓英, 2025-09-24 01:33 午後
clipboard-202509241334-qz7rf.png (12.5 KB) clipboard-202509241334-qz7rf.png 渡邉 拓英, 2025-09-24 01:34 午後
clipboard-202509241334-0blq7.png (980 Bytes) clipboard-202509241334-0blq7.png 渡邉 拓英, 2025-09-24 01:34 午後
clipboard-202509241401-otusq.png (54.8 KB) clipboard-202509241401-otusq.png 渡邉 拓英, 2025-09-24 02:01 午後
clipboard-202509241520-trgf1.png (3.79 KB) clipboard-202509241520-trgf1.png 渡邉 拓英, 2025-09-24 03:20 午後
clipboard-202509241520-qv3vp.png (4.34 KB) clipboard-202509241520-qv3vp.png 渡邉 拓英, 2025-09-24 03:20 午後
clipboard-202509241526-6nzyh.png (16.5 KB) clipboard-202509241526-6nzyh.png 渡邉 拓英, 2025-09-24 03:26 午後
clipboard-202509241527-btagq.png (3.68 KB) clipboard-202509241527-btagq.png 渡邉 拓英, 2025-09-24 03:27 午後
clipboard-202509241545-fycsf.png (12.2 KB) clipboard-202509241545-fycsf.png 渡邉 拓英, 2025-09-24 03:45 午後
clipboard-202509241545-t3iuh.png (3.92 KB) clipboard-202509241545-t3iuh.png 渡邉 拓英, 2025-09-24 03:45 午後
clipboard-202509241545-yfo9b.png (11.8 KB) clipboard-202509241545-yfo9b.png 渡邉 拓英, 2025-09-24 03:45 午後
clipboard-202509241553-si7cr.png (52.1 KB) clipboard-202509241553-si7cr.png 渡邉 拓英, 2025-09-24 03:53 午後
clipboard-202509241602-m7i80.png (1.46 KB) clipboard-202509241602-m7i80.png 渡邉 拓英, 2025-09-24 04:02 午後
clipboard-202509241603-dbf0g.png (1.62 KB) clipboard-202509241603-dbf0g.png 渡邉 拓英, 2025-09-24 04:03 午後
clipboard-202509241604-ar1aj.png (5.31 KB) clipboard-202509241604-ar1aj.png 渡邉 拓英, 2025-09-24 04:04 午後
clipboard-202509241646-vfhp9.png (11.1 KB) clipboard-202509241646-vfhp9.png 渡邉 拓英, 2025-09-24 04:46 午後
clipboard-202509241700-qxno1.png (2.24 KB) clipboard-202509241700-qxno1.png 渡邉 拓英, 2025-09-24 05:00 午後
clipboard-202509241702-5dva3.png (2.64 KB) clipboard-202509241702-5dva3.png 渡邉 拓英, 2025-09-24 05:02 午後
clipboard-202509241714-vsqgk.png (4.92 KB) clipboard-202509241714-vsqgk.png 渡邉 拓英, 2025-09-24 05:14 午後
clipboard-202509241714-bj5cu.png (14.8 KB) clipboard-202509241714-bj5cu.png 渡邉 拓英, 2025-09-24 05:14 午後
clipboard-202510141432-1plkd.png (7.07 KB) clipboard-202510141432-1plkd.png 渡邉 拓英, 2025-10-14 02:32 午後
clipboard-202510141432-fq3bk.png (11.7 KB) clipboard-202510141432-fq3bk.png 渡邉 拓英, 2025-10-14 02:32 午後
clipboard-202510141504-8ptjj.png (49 KB) clipboard-202510141504-8ptjj.png 渡邉 拓英, 2025-10-14 03:04 午後
clipboard-202510141504-ymfx7.png (25.2 KB) clipboard-202510141504-ymfx7.png 渡邉 拓英, 2025-10-14 03:04 午後
clipboard-202510141505-goqnz.png (18.4 KB) clipboard-202510141505-goqnz.png 渡邉 拓英, 2025-10-14 03:05 午後
clipboard-202510141715-eko3c.png (23.1 KB) clipboard-202510141715-eko3c.png 浦田 光祐, 2025-10-14 05:15 午後
clipboard-202509091010-o9qem.png
clipboard-202509091025-1umrq.png
clipboard-202509091334-vpdp5.png
clipboard-202509091422-1qvsg.png
clipboard-202509091422-bc0yr.png
clipboard-202509091525-1ygdd.png
clipboard-202509091529-cq6kt.png
clipboard-202509091536-lpymb.png
clipboard-202509091551-cvrz8.png
clipboard-202509091551-wvg71.png
clipboard-202509091554-i6wpa.png
clipboard-202509091557-rjmjh.png
clipboard-202509241140-tyhfg.png
clipboard-202509241142-mts6m.png
clipboard-202509241252-he8uf.png
clipboard-202509241253-6i5ok.png
clipboard-202509241300-iaupi.png
clipboard-202509241302-jovy1.png
clipboard-202509241310-zgcpo.png
clipboard-202509241311-bgysk.png
clipboard-202509241322-070ro.png
clipboard-202509241332-sqq4t.png
clipboard-202509241332-fov41.png
clipboard-202509241333-evd4w.png
clipboard-202509241334-qz7rf.png
clipboard-202509241334-0blq7.png
clipboard-202509241401-otusq.png
clipboard-202509241520-trgf1.png
clipboard-202509241520-qv3vp.png
clipboard-202509241526-6nzyh.png
clipboard-202509241527-btagq.png
clipboard-202509241545-fycsf.png
clipboard-202509241545-t3iuh.png
clipboard-202509241545-yfo9b.png
clipboard-202509241553-si7cr.png
clipboard-202509241602-m7i80.png
clipboard-202509241603-dbf0g.png
clipboard-202509241604-ar1aj.png
clipboard-202509241646-vfhp9.png
clipboard-202509241700-qxno1.png
clipboard-202509241702-5dva3.png
clipboard-202509241714-vsqgk.png
clipboard-202509241714-bj5cu.png
clipboard-202510141432-1plkd.png
clipboard-202510141432-fq3bk.png
clipboard-202510141504-8ptjj.png
clipboard-202510141504-ymfx7.png
clipboard-202510141505-goqnz.png
clipboard-202510141715-eko3c.png

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ステータス を 新規 から フィードバック に変更

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091010-o9qem.png を追加
clipboard-202607271423-b28kk.png

リフレクションを多用しない!!!
「invoke」

→ ※配列の対応も合わせて対応する。

どうしてもの時で、今回は違う。
書けばいいだけ。

Java のリフレクションは非常に強力ですが、使い方を誤ると 保守性・安全性・パフォーマンス に悪影響を与えます。主な注意点をまとめます。


🔎 リフレクション利用時の注意点

1. カプセル化の破壊

  • private フィールドやメソッドにアクセスできてしまう (setAccessible(true))。
  • 設計者の意図を無視してしまい、クラスの変更に弱くなる。

👉 本当に必要な場合以外は避ける。特にライブラリや外部クラスでは注意。


2. パフォーマンス低下

  • 通常のメソッド呼び出しよりもオーバーヘッドが大きい。
  • 頻繁に呼び出す処理(ループの中など)では顕著に遅くなる。

👉 キャッシュ(Method や Field オブジェクトの再利用)を行う、または MethodHandle や VarHandle を検討する。


3. 型安全性の欠如

  • コンパイル時チェックが効かず、実行時に ClassCastException や NoSuchMethodException が発生しやすい。
  • ジェネリクスの情報も一部は消失しているため、誤用を検知できない。

👉 instanceof や null チェックを丁寧に行う。


4. セキュリティ制約

  • セキュリティマネージャー(Java 17 で deprecated)やモジュールシステム(Java 9 以降)の制約により、アクセスが制限される場合がある。
  • JDK 内部 API へリフレクションアクセスすると、Java 17+ では警告やエラーになるケースがある。

👉 公開 API で代替できないかを検討する。


5. モジュールシステムとの相性

  • Java 9 以降、--illegal-access オプションなしでは内部パッケージにアクセスできない。
  • 例えば java.base の非公開クラスにアクセスすると InaccessibleObjectException。

👉 opens 宣言や --add-opens オプションで対応が必要。


6. メンテナンス性の低下

  • ソースコードを見ただけでは利用されているメソッドやフィールドが分からない。
  • 将来のリファクタリング(メソッド名変更・シグネチャ変更)で簡単に壊れる。

👉 リフレクションは「最後の手段」として使う。


7. 代替手段の検討

  • ServiceLoader や インターフェース + 実装クラス で代替できる場合が多い。
  • フレームワークを使うなら、DI(Spring / CDI)を利用する方が安全。

✅ まとめ

リフレクションは便利ですが、

  • 性能劣化
  • 安全性低下
  • メンテナンス性低下

といったリスクを伴います。
👉 「どうしても必要なケース(フレームワーク・ライブラリ内部処理など)」以外は極力避け、代替手段を検討するのがおすすめです。


ご希望なら、「安全にリフレクションを使うためのベストプラクティス(例:キャッシュ方法、例外処理のテンプレート)」 も整理できますが、見ますか?

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091025-1umrq.png を追加
clipboard-202607271414-ygaw3.png

設計書と実装を合わせる

間違っているのであれば、設計者に 連絡するべき

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091334-vpdp5.png を追加
clipboard-202607271431-6elvg.png

設計書に存在しない(且つ、使用しうる)IDを勝手に追加実装しない(設計・実装が合っていません。)
「ND1400065」以降の値全て

パターン1・・・実装したIDを全て設計書に記載する

パターン2・・・配列での実装にする

・項目が追加されたら、ND1400065を使用しますよね?
 後から知って、最後のIDを調べる?PGを見る手間が必要がでますよね?NGです。

・明細に項目追加されたら、修正するのは、非常に大変ですよね?

・PG 各IDにコメントが無く、項目が不明です。→見てわからなくなりますよね?

N件(配列)での実装にしてください。
http://10.104.253.197/projects/3-dos/wiki/%E7%94%BB%E9%9D%A2%E3%80%80N%E4%BB%B6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%A1%A8%E7%A4%BA%E3%83%BB%E5%85%A5%E5%8A%9B%E3%81%99%E3%82%8B%E7%94%BB%E9%9D%A2%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

そもそも、設計→実装で
どう書くべきか、不明(確信をもって実装できない)なら聞くべきです。

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091422-1qvsg.png を追加
  • ファイル clipboard-202509091422-bc0yr.png を追加
clipboard-202607271641-dtqha.png
clipboard-202607271643-vf6ra.png

恐らく、設計者の意図と異なります。(設計書の作成ルールに沿っていませんが・・・)

なぜ、このような実装になったのか?

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091525-1ygdd.png を追加
clipboard-202607280952-npr9r.png

作成を始める時、ちゃんとツールから、コード生成していますか?

しているのであれば、ツール生成日時等は消さない

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091529-cq6kt.png を追加
clipboard-202607280955-yeyma.png

データ処理

長いのであればメソッド「dataProcessModeX」に記載して欲しいです。

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091536-lpymb.png を追加
clipboard-202511041712-eramn.png

セルフ確認不足 不要コメント消す

      // throw new Exception("契約方面データ取得メソッド エラー");

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091551-cvrz8.png を追加
  • ファイル clipboard-202509091551-wvg71.png を追加
  • ファイル clipboard-202509091554-i6wpa.png を追加
clipboard-202511121045-dzgpp.png
clipboard-202511121052-ny4ip.png
clipboard-202511121053-dziau.png

コーディング コメントについて

「 空白(非表示)」が消されてしまうと設計書と合っているのか、設計書を見ないわからない。
この案件では、「全てコメントに残す」とルールになっています。
他、いろいろな箇所

コメントは、書く時に使用するのではなく、第三者が読む時に使用します。

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509091557-rjmjh.png を追加
clipboard-202512111752-lzovd.png

無駄に長いので簡潔に記述してください。

Arrays.asList("XXX", "XXX").contains(


ここまでOK

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • 題名 を コードレビュー ND10070 から ND10070_開発_運賃契約区分情報 コードレビュー に変更

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • 題名 を ND10070_開発_運賃契約区分情報 コードレビュー から ND10070_開発_運賃契約区分情報 コードレビュー 第1段 に変更
  • 担当者 を 渡邉 拓英 から 浦田 光祐 に変更

浦田 光祐 さんが約1年前に更新 · 編集済み

  • ステータス を フィードバック から 設計中(第一貨物) に変更
  • 担当者 を 浦田 光祐 から 渡邉 拓英 に変更

指摘いただいた部分のPG、設計書の修正が完了しました。
再レビューよろしくお願いいたします。

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241140-tyhfg.png を追加
  • ファイル clipboard-202509241142-mts6m.png を追加
MPKN090.jpg
clipboard-202511101247-nf2ij.png

設計書と実装が異なる

設計書通りであれば、1~??までループする

実装では、0~??までループする

そもそも「プロパティ.契約方面データを読み込み、以下をループする。」で何回ループするか明記されていない。
→無理な拡大解釈 なぜhomenKosuまでのループと判断できたか???

PL/1 配列のインデックスは「1」から開始
Java 配列のインデックスは「0」から開始(現代的な言語はすべて。リビルド後の設計書はこれを基本とする)
→参照するインデックスを実装レベルで勝手に変えない

※N件目やXXXX[i]などについて、辻褄を合わせるのはよいが、
 カウントアップの処理を改変するのはNG

設計書通りなら
0から始めてカウントアップする→照会する場合カウンタ-1でアクセスすべきでは??

その後の処理でカウンタを違う使い方をするかもしれない
・全体を読まないと合っていると判断できなくなる。可読性が悪い(NG)
・処理の辻褄が合わなくなる可能性が出る(NG)
・修正時の設計書通りに直せなくなる(NG)

実装を直すべきか?
設計書を直すべきか?

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241252-he8uf.png を追加
  • ファイル clipboard-202509241253-6i5ok.png を追加
clipboard-202511101248-htwy1.png
clipboard-202508281805-mnekm.png

""と判断しない ※何度か同じような指摘をしているかと思います。

!"".equals(stvkcun1w.getKHOMSRKM()

桁数1で、普通、文字数0の空は入らない想定かと思います。

!stvkcun1w.getKHOMSRKM().isBlank()

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241300-iaupi.png を追加
  • ファイル clipboard-202509241302-jovy1.png を追加
clipboard-202508281806-l1fgr.png
clipboard-202508291002-seut8.png

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241310-zgcpo.png を追加
  • ファイル clipboard-202509241311-bgysk.png を追加
clipboard-202508291002-4ybwt.png
clipboard-202509011154-v1hxz.png

↓

    nd10070Data.setGamenTekiyouKosu(toInt(form.getND1400005()));

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241322-070ro.png を追加
clipboard-202509021024-mkkxb.png

下記の処理は設計書のどこの内容か?

これでダメなのか?

    for (int i = 0; i < 20; i++) {
      kousinArrayKosu[0] = toInt(getFormValue("ND1400012", form, 1));
    }

記述が無駄に長い
画面レイアウトの処理の流れを追いにくい
→コーダーとして、工夫すべきポイント。
動けばいい・・・初心者

長々と記述する必要があるなら、メソッドに切り分けるべき。

コーディング初心者とベテランの違いは、単に「コードが書けるか書けないか」ではなく、考え方・習慣・質の差にあります。順に整理してみます。


1️⃣ コードの書き方

項目 初心者 ベテラン
変数・関数名 適当・短くて意味が分かりにくい(例: x, len) 意味が明確で一目で役割がわかる(例: contractCount)
コメント 少ない or 多すぎる 必要な箇所に的確、読んで理解できる
冗長さ 同じ処理を繰り返し書く 共通化して再利用、関数化
ネスト 深くなりがち ネストを浅く保つ、早期リターンで整理

2️⃣ 設計・構造の理解

項目 初心者 ベテラン
処理の分離 1つのメソッドに全部書きがち 関心ごとごとにクラス・メソッドを分離
依存関係 無計画に他のクラスを呼び出す 依存注入・設計パターンで整理
再利用性 書き直すことが多い 汎用的に使えるように設計

3️⃣ デバッグ・保守性

項目 初心者 ベテラン
バグ発見 試行錯誤で探す 想定される原因を順序立ててチェック
ログ・例外 最小限 or 過剰 適切に出力、障害時も原因特定しやすい
将来対応 修正が大変 変更しやすい設計、テスト容易

4️⃣ 思考の違い

  • 初心者

    • 「とりあえず動くコード」を書く
    • 実装重視で全体像はあまり考えない
  • ベテラン

    • 「動かすだけでなく維持できるコード」を書く
    • 仕様・性能・拡張性・テストを意識

💡 まとめ

  • コーディングスキルは「コードを書く速さ」だけでなく、「読みやすさ・保守性・設計の深さ」に現れる
  • ベテランほど「未来の自分や他人が読むこと」を意識して書く

もし希望なら、初心者がベテランっぽく見える 具体的コーディングの改善例 を短いサンプルで示すこともできます。
やってほしいですか?

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241332-sqq4t.png を追加
  • ファイル clipboard-202509241332-fov41.png を追加
6.png
clipboard-202509031135-ctoio.png

コメントを消さない

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241333-evd4w.png を追加
  • ファイル clipboard-202509241334-qz7rf.png を追加
  • ファイル clipboard-202509241334-0blq7.png を追加
MPBU940.jpg
MPBU970.jpg
MPKN190.jpg

コメントを消さない

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241401-otusq.png を追加
MPKN160.jpg

無駄に長い

個数上限区分1~20で同じ処理するパターンが多くあるのですよね?

個数上限区分1~20のIDをリストで取得するメソッドを作成してください。

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241520-trgf1.png を追加
  • ファイル clipboard-202509241520-qv3vp.png を追加
clipboard-202510290917-j3qrk.png
clipboard-202510290934-gtv8j.png

コメントを消さない
「『DB更新仕様 運賃基本情報更新時(上限区分) 参照』」

メソッド名
「updateSTVKCUN1WJyougenKbn」
CommAreaを更新するニュアンスが入ってない
http://10.104.253.197/projects/3-dos/wiki/%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E5%90%8D

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241526-6nzyh.png を追加
  • ファイル clipboard-202509241527-btagq.png を追加
clipboard-202512090946-ctje5.png
スクリーンショット 2025-12-09 094320.png

テーブル名:「COMM_AREA明細.ND10050.COMM_VKCUN1W」とは?
存在しない
勝手に空気を読んで実装しない。→設計者にQA(設計書修正)すべき内容

そもそも「マッピング仕様」に書くべき

COMM_AREA明細.ND10050.COMM_VKCUN1W[顧客マスタ(運賃基本情報)_変更情報]を更新する。
『DB更新仕様 運賃基本情報更新時(上限区分) 参照』
マスタメンテ更新データを設定する 『マッピング仕様 運賃基本情報更新時(上限区分) 参照』
COMM_AREA明細.ND10050.COMM_VKCUN1W[顧客マスタ(運賃基本情報)_変更情報] ← マスタメンテ更新データ

下記も同じ

COMM_AREA明細.ND10050.COMM_VKCUN2W[顧客マスタ(運賃方面別情報)_変更情報]のデータ行数分、																																						
COMM_AREA明細.ND10050.COMM_VKCUN2W[顧客マスタ(運賃方面別情報)_変更情報]を更新する。																																						
																					『DB更新仕様 運賃方面別情報更新時(上限区分) 参照』																	

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241545-fycsf.png を追加
スクリーンショット 2025-12-09 094418.png

謎のコメント 要る?要らない?
// throw new Exception("");

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241545-t3iuh.png を追加
  • ファイル clipboard-202509241545-yfo9b.png を追加
clipboard-202512090952-o3twu.png
clipboard-202512090952-y3bu6.png

「処理を終了する。」とは?
ルールでは、どのように実装するかわからないと思うが
なぜこの実装になったのか? 

何度も言っているが、勝手に(仕様の妄想して)実装しない
「設計書→誰でも同様に動くように記載する」がルール

下記どこから出て来たのか????

    // 画面の項目表示を更新
      checkQuitReview(form, bindingResult, model, httpSession, stvkcun1w);

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241553-si7cr.png を追加
clipboard-202512090954-e8tge.png

読みにくい

「dataProcessMode4」メソッドをなぜ作らないのか?

渡邉 拓英 さんが約1年前に更新 · 編集済み

for (int cnt = 0; cnt < nd10070Data.getHomenNum(); cnt++) {
  // 変数.ループカウンタ ← 変数.ループカウンタ + 1

ループカウンタの処理が記載してあるので、それ通り実装すべき

配列の参照時に、[ループカウンタ]なのか[ループカウンタ -1]なのか合わせるべき

String[][] homenCd = getHomenCodesinHomenCode(stvkcun1w);
これも1~45のインデックスで作るべき

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241602-m7i80.png を追加
  • ファイル clipboard-202509241603-dbf0g.png を追加
  • ファイル clipboard-202509241604-ar1aj.png を追加
clipboard-202512091339-mbgux.png
clipboard-202512091340-ia7qi.png
clipboard-202512091000-kj73p.png

方面コード いろいろNG

「2次元配列」とは記載していない→実装と設計が合っていない

「更新FLG」とは? 

勝手に2次元配列にしない
インデックスが具体的に指定されている。勝手に変えない

ちなみに「プロパティ.方面コード(変数.ループカウンタ).更新FLG ← "DEL"」と言う表現を尊重すると

new String[2][45];・・・×
new String[45][2];・・・せめてこっち

0・・・方面コード
1・・・更新FLG
勝手に決めない コメントが無い 自己満足で終わっていませんか?

構造体、Mapなどの配列では? 妄想しない!!!

何度も言うが勝手に実装しない
 動くように作る・・・今回のゴールではない
 設計書通り作る(設計書の辻褄も合っている)がゴール

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241646-vfhp9.png を追加
clipboard-202512091332-fdvji.png

定数・・・コーディングルール・一般的な書き方に習ってください。

「final」

すべて大文字

単語の区切りはアンダースコア _

意味がわかる名前を付ける

UNTIN_SANTEI_TEKIYOU_CODE

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241700-qxno1.png を追加
clipboard-202512091333-qwzto.png

javaの変数の記述方法は? 合ってないですよね

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241702-5dva3.png を追加
clipboard-202512091333-qcw2v.png

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202509241714-vsqgk.png を追加
  • ファイル clipboard-202509241714-bj5cu.png を追加
スクリーンショット 2025-12-09 101606.png
clipboard-202512091028-g0mte.png

※拡大解釈しないでください。

・選択は複数あります。勝手にループしないでください。

・実装ではループしていますが、最終行のU、R、Xの入力により遷移先が変わる仕様なのでしょうか?

→PL/1(第一貨物)では、入力された先頭の行を見ているはずです。

QAが出ずに実装完了はNGです。

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • 題名 を ND10070_開発_運賃契約区分情報 コードレビュー 第1段 から ND10070_開発_運賃契約区分情報 コードレビュー 第2段 に変更
  • ステータス を 設計中(第一貨物) から フィードバック に変更

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • 担当者 を 渡邉 拓英 から 浦田 光祐 に変更

浦田 光祐 さんが約1年前に更新 · 編集済み

  • ステータス を フィードバック から 設計中(第一貨物) に変更
  • 担当者 を 浦田 光祐 から 渡邉 拓英 に変更

レビュー頂いた内容で修正いたしましたので、確認お願いいたします。

またお伝え損ねておりましたが、mode5の開発が完了したので改めてレビューお願いいたします。

渡邉 拓英 さんが約1年前に更新 · 編集済み

ここまでOK

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202510141432-1plkd.png を追加
  • ファイル clipboard-202510141432-fq3bk.png を追加
clipboard-202608031101-fbcfd.png
clipboard-202608031102-g1ntj.png

多分

    if (toInt("46").compareTo(keiyakuHomenData.size()) <= 0) {

< → <=

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202510141504-8ptjj.png を追加
  • ファイル clipboard-202510141504-ymfx7.png を追加
  • ファイル clipboard-202510141505-goqnz.png を追加
clipboard-202608040902-lramf.png
clipboard-202607301529-rzjoc.png
clipboard-202607301530-ytcen.png

結局、最終行が採用されるで合っているのでしょうか?

こちらは、先頭のようですが・・・

「画面.選択に"U" OR "R" OR "X" が入力されている行」が複数あった場合、どうなるのでしょうか?
設計書からは読み取れませんが。
「画面.選択の入力値で処理を分岐。」
からも、先頭行を使用する内容はありません。

ちなみにカンマ編集は

String[] arr = {"apple", "banana", "cherry"};
String result = String.join(",", arr);

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • 担当者 を 渡邉 拓英 から 浦田 光祐 に変更

浦田 光祐 さんが約1年前に更新 · 編集済み

  • ファイル clipboard-202510141715-eko3c.png を追加
  • 担当者 を 浦田 光祐 から 渡邉 拓英 に変更
clipboard-202607301723-ckzgz.png

レビューありがとうございます。

#37を修正しました。

#38についてですが、画面.選択に"U" OR "R" OR "X" が複数行入力された場合は validatemode5 のチェック処理でエラーとしています。
よって画面.選択の入力値が存在する行は1行だけですので、先頭を採用する処理にしています。

渡邉 拓英 さんが約1年前に更新 · 編集済み

  • ステータス を 設計中(第一貨物) から 終了 に変更

他の形式にエクスポート: Atom PDF