- HOME >
- ポンコツPdM
ポンコツPdM

SIerでの開発・プロジェクト運営の経験をもとに、Java・Springの実装、設計・テスト、チーム開発で役立つ手順をまとめています。
学習と現場をつなぐ
作業一覧を「未着手を先、同じ状態なら期限が近い順」に並べた。最初はよく見えたのに、期限が未設定のデータが来ると例外になり、同じ期限の行も表示のたびに順序が揺れる。 複数条件のソートは、比較式を一行へ詰めるより、利用者が期待する順序を表にしてから Comparator を組む方が安全です。以下は Java 21 の例です。 まず並び順を文章ではなく表にする 優先順位 比較する値 順序 1 状態 未着手 → 対応中 → 完了 2 期限 早い日付 → 遅い日付 → 未設定 3 ID 小さい順。完全同順位の決着用 ...
AIによる要約設計・テストの本は、いま説明できない変更から選びます。責務が混ざるなら設計入門、内部変更でテストが壊れるなら単体テスト、業務とDBの境界で迷うならシステム設計の原則が候補です。このページでは対象版と読む範囲を確認し、独自のJava・JUnit課題で失敗と修正、未保存の条件まで確かめます。 Javaで機能を追加できるようになっても、「直す場所が読めない」「テストが毎回壊れる」という壁は残ります。注文画面に項目を一つ増やしただけなのに、Controller、Service、SQL、テストを順番に ...
AIによる要約フォームとDBの処理をつなげたいなら入門書、HTTPの送受信を説明できないならWebの基礎書、DIや更新境界の判断に迷うならSpringの詳しい解説書を選びます。3冊すべてを読む必要はありません。購入前に小さな課題を試し、できなかった作業から最初の1冊と読む範囲を決めます。 この記事は、Javaの入門を終えてSpring Bootの業務機能を担当し始めた人向けです。受注登録や検索画面の改修を例に、本を読む必要がある場面と、読んだ後に自分で確かめる課題を整理します。経験年数ではなく、今できない ...
障害報告書の最後に「今後は確認を徹底する」と書くと、文章としては締まります。しかし次に何を変更し、誰がいつ、その効果をどう確かめるかは決まりません。 この場面では、担当者の注意喚起より、同じ条件が起きたときのシステムと運用の動きを変えることを優先します。 発生を防ぐ策と、発生しても早く気づき影響を抑える策を分けます。 以下は問い合わせ受付通知が二重に送られた、という架空の事例です。実際の顧客や障害を記述したものではありません。 まず、何が分かっているかを固定する 項目 架空の記入例 事象 受付済みの問い合 ...
3列のCSVを line.split(",") で読んでいたら、名前にカンマが入った行から列がずれた。1セル内に改行があると、行を読む時点でも崩れます。 CSV取込で私が取る方針は、区切り位置を自作しないことです。ファイルの形式と文字コードを決め、対応するパーサーへ任せます。そのうえで、ヘッダー・列数・必須値という業務上の条件を自分たちのコードで検証します。以下は Java 21、Apache Commons CSV 1.14.1 の例です。 split が壊れる入力を見る id,na ...
半年後に「なぜ通知処理をこの方式にしたのですか」と聞かれ、コードだけでは答えられない。担当者が異動すると、当時は合理的だった選択も、単なる奇妙な実装に見えることがあります。 この場面では、結論だけでなく、当時の条件と引き受けた不利益を残すことを優先します。 ADR(Architecture Decision Record)は、その設計判断を後から読み直すための記録です。全てのクラスやメソッドを文書化する必要はなく、後で変更費用が大きくなりそうな判断に使います。 MADRの公式テンプレートには、背景、判断材 ...
フォームを作って終わりにしない。入力の約束からエラー時の再表示、Serviceの業務判断、MockMvcでの確認まで、既存記事を読む順と確認する問いをまとめました。
問い合わせ一覧が数百件になり、「全部取得してから画面で20件ずつ切る」実装が苦しくなった。Spring Data JPAなら、Repositoryへ Pageable を渡して取得範囲を限定できます。 ただし私は、PageRequest.of(page, size) を置くだけでは完成としません。ページ番号の0始まり、件数の上限、同日時データの順序まで決めます。これを曖昧にすると、最初のページが一つずれたり、ページを移動したとき同じ行が見えたりします。以下は Java 21、Spring Boot 3.5 ...
登録完了画面でブラウザを更新すると「フォームを再送信しますか」と聞かれ、同じ申請が二件できた。ここでボタンを押せなくするJavaScriptを足しても、通信再試行や別タブからの送信は止まりません。 対策は、どの再送を止めたいかで選びます。正常なPOSTの後に結果ページへ移動させるPRG(Post/Redirect/Get)は、更新時の再送を減らす第一歩です。しかし二つのPOSTが同時に届く場合は、サーバー側の仕組みも必要です。以下は Java 21、Spring Boot 3.5系の架空の申請フォームです ...
「新しい版を配置する」「画面を確認する」「問題があれば戻す」。この三行だけでは、夜間に別の担当者が同じ作業を安全に実行できません。何を見て成功と判断し、どこで中止し、戻した後に何を確かめるかが抜けているからです。 この場面では、操作の列挙より、続行・中止・切り戻しを判断できる情報を優先します。 コマンドの羅列より先に、判断する人と観測する結果を決めます。 ここでは架空の問い合わせ管理アプリで、件名の文字数チェックを修正する小規模なWeb改修を例にします。対象はKubernetes上の inquiry-we ...