ポンコツPdM

プロフィール画像

SIerでの開発・プロジェクト運営の経験をもとに、Java・Springの実装、設計・テスト、チーム開発で役立つ手順をまとめています。

    状態・期限・nullの順に並べ替え条件を重ねる図。ソート順を仕様から決める

    実装・エラー解決

    2026/10/1

    JavaでListを複数条件でソートする方法|thenComparingとnullsLastの使い方

    作業一覧を「未着手を先、同じ状態なら期限が近い順」に並べた。最初はよく見えたのに、期限が未設定のデータが来ると例外になり、同じ期限の行も表示のたびに順序が揺れる。 複数条件のソートは、比較式を一行へ詰めるより、利用者が期待する順序を表にしてから Comparator を組む方が安全です。以下は Java 21 の例です。 まず並び順を文章ではなく表にする 優先順位 比較する値 順序 1 状態 未着手 → 対応中 → 完了 2 期限 早い日付 → 遅い日付 → 未設定 3 ID 小さい順。完全同順位の決着用 ...

    Javaの設計とテストの困りごとから読む本を選ぶ記事のアイキャッチ。若手エンジニアが読む順番のチェックリストとテスト結果を確認するイラスト。

    技術書・書評

    2026/10/15

    Javaの設計・テストおすすめ本3冊|変更が怖いときの選び方と読む順番

    AIによる要約設計・テストの本は、いま説明できない変更から選びます。責務が混ざるなら設計入門、内部変更でテストが壊れるなら単体テスト、業務とDBの境界で迷うならシステム設計の原則が候補です。このページでは対象版と読む範囲を確認し、独自のJava・JUnit課題で失敗と修正、未保存の条件まで確かめます。 Javaで機能を追加できるようになっても、「直す場所が読めない」「テストが毎回壊れる」という壁は残ります。注文画面に項目を一つ増やしただけなのに、Controller、Service、SQL、テストを順番に ...

    Spring実務の困りごとから読む本と順番を選ぶ記事のアイキャッチ。若手エンジニアがフォーム・サービス・DBの流れを書いたノートと技術書を確認するイラスト。

    Spring 技術書・書評

    2026/10/15

    Spring Bootのおすすめ本3冊|実務で困る場面と読む順番

    AIによる要約フォームとDBの処理をつなげたいなら入門書、HTTPの送受信を説明できないならWebの基礎書、DIや更新境界の判断に迷うならSpringの詳しい解説書を選びます。3冊すべてを読む必要はありません。購入前に小さな課題を試し、できなかった作業から最初の1冊と読む範囲を決めます。 この記事は、Javaの入門を終えてSpring Bootの業務機能を担当し始めた人向けです。受注登録や検索画面の改修を例に、本を読む必要がある場面と、読んだ後に自分で確かめる課題を整理します。経験年数ではなく、今できない ...

    発生した事実から検知と具体的な対策へつなぐ図。再発防止を行動にする

    仕事・チーム開発

    2026/10/1

    障害報告書の再発防止策の書き方|「確認を徹底する」で終わらせない例

    障害報告書の最後に「今後は確認を徹底する」と書くと、文章としては締まります。しかし次に何を変更し、誰がいつ、その効果をどう確かめるかは決まりません。 この場面では、担当者の注意喚起より、同じ条件が起きたときのシステムと運用の動きを変えることを優先します。 発生を防ぐ策と、発生しても早く気づき影響を抑える策を分けます。 以下は問い合わせ受付通知が二重に送られた、という架空の事例です。実際の顧客や障害を記述したものではありません。 まず、何が分かっているかを固定する 項目 架空の記入例 事象 受付済みの問い合 ...

    引用符で囲まれたカンマ入りセルがあるCSV表の図。単純なsplitでは区切れないことを示す

    実装・エラー解決

    2026/10/1

    JavaでCSVを読み込む方法|カンマ・改行・ダブルクォートを含むデータに対応する

    3列のCSVを line.split(",") で読んでいたら、名前にカンマが入った行から列がずれた。1セル内に改行があると、行を読む時点でも崩れます。 CSV取込で私が取る方針は、区切り位置を自作しないことです。ファイルの形式と文字コードを決め、対応するパーサーへ任せます。そのうえで、ヘッダー・列数・必須値という業務上の条件を自分たちのコードで検証します。以下は Java 21、Apache Commons CSV 1.14.1 の例です。 split が壊れる入力を見る id,na ...

    二つの選択肢から一つを選び理由と見直し条件を記すADR文書の図

    仕事・チーム開発

    2026/10/1

    ADRの書き方|設計を選んだ理由を残すテンプレートと記入例

    半年後に「なぜ通知処理をこの方式にしたのですか」と聞かれ、コードだけでは答えられない。担当者が異動すると、当時は合理的だった選択も、単なる奇妙な実装に見えることがあります。 この場面では、結論だけでなく、当時の条件と引き受けた不利益を残すことを優先します。 ADR(Architecture Decision Record)は、その設計判断を後から読み直すための記録です。全てのクラスやメソッドを文書化する必要はなく、後で変更費用が大きくなりそうな判断に使います。 MADRの公式テンプレートには、背景、判断材 ...

    no image

    実装・エラー解決

    2026/10/13

    Spring Bootのフォーム入力・バリデーション実践ガイド|実装からテストまで

    フォームを作って終わりにしない。入力の約束からエラー時の再表示、Serviceの業務判断、MockMvcでの確認まで、既存記事を読む順と確認する問いをまとめました。

    1・2・3ページのカードと安定した並び順を示す図。ページングの件数と順序を確認する

    実装・エラー解決

    2026/10/1

    Spring Data JPAでページングする方法|Pageableのページ番号・件数・並び順

    問い合わせ一覧が数百件になり、「全部取得してから画面で20件ずつ切る」実装が苦しくなった。Spring Data JPAなら、Repositoryへ Pageable を渡して取得範囲を限定できます。 ただし私は、PageRequest.of(page, size) を置くだけでは完成としません。ページ番号の0始まり、件数の上限、同日時データの順序まで決めます。これを曖昧にすると、最初のページが一つずれたり、ページを移動したとき同じ行が見えたりします。以下は Java 21、Spring Boot 3.5 ...

    POSTからリダイレクトを経てGETへ進む矢印の図。PRGで防げる再送を見極める

    実装・エラー解決

    2026/10/1

    Spring Bootでフォームの二重送信を防ぐには?PRGで防げること・防げないこと

    登録完了画面でブラウザを更新すると「フォームを再送信しますか」と聞かれ、同じ申請が二件できた。ここでボタンを押せなくするJavaScriptを足しても、通信再試行や別タブからの送信は止まりません。 対策は、どの再送を止めたいかで選びます。正常なPOSTの後に結果ページへ移動させるPRG(Post/Redirect/Get)は、更新時の再送を減らす第一歩です。しかし二つのPOSTが同時に届く場合は、サーバー側の仕組みも必要です。以下は Java 21、Spring Boot 3.5系の架空の申請フォームです ...

    リリース後の確認から中止・切り戻しへ戻る矢印の図。戻す手順まで用意する

    仕事・チーム開発

    2026/10/1

    リリース手順書の書き方|作業・確認・切り戻しをセットにした記入例

    「新しい版を配置する」「画面を確認する」「問題があれば戻す」。この三行だけでは、夜間に別の担当者が同じ作業を安全に実行できません。何を見て成功と判断し、どこで中止し、戻した後に何を確かめるかが抜けているからです。 この場面では、操作の列挙より、続行・中止・切り戻しを判断できる情報を優先します。 コマンドの羅列より先に、判断する人と観測する結果を決めます。 ここでは架空の問い合わせ管理アプリで、件名の文字数チェックを修正する小規模なWeb改修を例にします。対象はKubernetes上の inquiry-we ...