ポンコツPdM

プロフィール画像

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

    アイキャッチ

    設計・テスト・レビュー

    2026/11/4

    プログラミングのバグや無駄を減らすために意識してほしいこと4つ

    このページに書いてあること Javaのレビューで見かける4つの見直しどころを、利用者登録とCSV出力の例で確認します。比較のnull、戻り値の候補、定数が表す意味、コメントに残す理由を、それぞれ分けて判断します。 前提 例では、未設定を状態の不一致として扱う比較と、未設定の入力を拒否する処理を別にします。実際のコードでは、入力が欠けたときの動きを先に決めます。 ・文字列比較では定数を前に持ってくる 任意の状態を ACTIVE と比べるなら、値が決まっている側から ACTIVE.equals(status) ...

    アイキャッチ

    設計・テスト・レビュー

    2026/11/4

    オブジェクト指向、SOLID原則に基づいたHTTPリクエスト通信部分を具体的なコードで説明

    利用者登録のPOSTを送った後、応答が来なかったとします。サーバー側では登録が完了しているかもしれません。同じPOSTをそのまま送り直した場合と、サーバーが同じ操作として扱えるキーを付けた場合を比べます。 関連記事オブジェクト指向、SOLID原則に基づいたHTTPリクエスト通信部分のクラス設計例(2) APIごとに変わる電文・ヘッダーと、共通の送受信処理をどのクラスへ置くかを説明した設計編です。 記事を読む → コードの前提 JDK 17の標準APIだけで動くサンプルです。元の記事ではSpringのCon ...

    アイキャッチ

    設計・テスト・レビュー

    2026/11/4

    オブジェクト指向、SOLID原則に基づいたHTTPリクエスト通信部分のクラス設計例(2)

    このページに書いてあること この記事の続きです。 関連記事オブジェクト指向、SOLID原則に基づいたHTTPリクエスト通信部分のクラス設計例 外部APIを順に呼ぶ処理を題材に、Controller・Service・インタフェース・DTOの分け方をクラス図で確認できます。 記事を読む → 最初にざっくり書いた以下のクラス図。 こちらのクラス図を更に改良していきます。どこが改善ポイントかというと、Serviceパッケージ内の外部APIに通信する部分です。リクエストの送信、応答の受信、タイムアウトをどこに置くか ...

    アイキャッチ

    設計・テスト・レビュー

    2026/10/15

    オブジェクト指向、SOLID原則に基づいたHTTPリクエスト通信部分のクラス設計例

    このページに書いてあること この記事やこの記事でかいていたクラス分割について、個人的にこうすればいいんじゃない?という内容を書きます。概念を示してくれる記事は多いのですが、実際のクラス分けとなるとわからなくなってしまう場合が多いので、参考程度に役立てていただければ。 関連記事業務用のシステムにおいてクラス設計(分割)をどのように考えるか-1 業務固有の処理と共通の仕組みを分け、インタフェースの責務と依存の向きを整理する考え方を確認できます。 記事を読む → 関連記事業務用のシステムにおいてクラス設計(分割 ...

    アイキャッチ

    実装・エラー解決

    2026/11/4

    Spring MVCの設定ファイル読み込みでファイル名を動的かつ複数設定する方法

    このページに書いてあること Spring MVCで設定ファイルを読み込むときに、条件に応じて使用する設定情報を使い分けたい場合があります。例えば、社内環境用のアプリと社外環境用のアプリ(以降、内部と外部)が同インスタンスにしており、経路によって使用する設定を切り替えたい場合です。内部と外部で設定ファイル名を分けてapplication_intra.properties/application_internet.propertiesを読み込みたい場合ですね。 そんな時は、PathMatchingResour ...

    アイキャッチ

    設計・テスト・レビュー

    2026/11/4

    システム移行のDNS切り替え|新旧の併存と切り戻しを3アプリで考える

    このページに書いてあること 3つのWebアプリを刷新する例で、DNSを一度に切り替える方式と、アプリごとに切り替える方式を比べます。接続先の切り替えと、旧系を停止できる条件は分けて考えます。 前提 注文・在庫・請求の3アプリがあり、新旧アプリは同じDBを使います。既存のURLを保ち、DNSの参照先を変更する構成です。 切替前に、DNSレコードのTTL、クライアントやリゾルバーのキャッシュ、新旧アプリが共通DBを読み書きできる期間を確認します。先にTTLを短くしても、既に旧TTLでキャッシュされた回答はその ...

    アイキャッチ

    設計・テスト・レビュー

    2026/10/15

    業務用のシステムにおいてクラス設計(分割)をどのように考えるか-2

    このページに書いてあること 前の記事で業務用システムで機能を分割するさいに頭に入れておくと良いことを書きました。今回は具体的にどう分けるかをまとめます。 関連記事業務用のシステムにおいてクラス設計(分割)をどのように考えるか-1 業務固有の処理と共通の仕組みを分け、インタフェースの責務と依存の向きを整理する考え方を確認できます。 記事を読む → 業務と仕組みは縦と横で分割する。 例えば、URL1,2,3を持つWebアプリがあったとした場合を考えます。URL1,2,3はアプリの外部に公開されています。 言っ ...

    アイキャッチ

    設計・テスト・レビュー

    2026/11/4

    MicrosoftのMSSQLで特定の構成の場合はフェールオーバーができないの要注意

    このページに書いてあること SQL Serverのピアツーピア(P2P)レプリケーション構成で、アプリのDB接続先をどう切り替えるかを調べた記録です。データを複製する構成と、障害時に接続先を切り替える構成を分けて確認します。 前提 Webアプリから複数のSQL Serverインスタンスへ接続できる構成を想定します。図は当時検討した構成例です。実環境の確認では、SQL Server・接続ドライバーのバージョン、DBの冗長方式、接続文字列を控えます。 問題と解決 当時のP2P構成では、接続文字列に failo ...

    アイキャッチ

    設計・テスト・レビュー

    2026/9/6

    業務用のシステムにおいてクラス設計(分割)をどのように考えるか-1

    このページに書いてあること 業務用のシステムって、一体どのようにクラス設計するのがいいのか、自分なりの経験を踏まえて至った現時点での答えを整理します。 システムを開発するにあたって、結構重要な内容としてクラス設計があると思います。しかし、「オブジェクト指向」という言葉が一人歩きしているように思う場面も多いです。 前提 Javaアプリ(C#でもいい。オブジェクト指向の言語なら)BtoC、BtoBに関わらず、業務系のシステムを対象WebAPIなども含みます。 要はJavaバッチなどは対象外。プロジェクトチーム ...

    アイキャッチ

    実装・エラー解決

    2026/11/4

    Site Kit by Googleをリセット後に再セットアップしたら動きませんでした

    このページに書いてあること。 WordPressのURLを変更したあと、Site Kitをつなぎ直してもダッシュボードが「データの取得中」から進まなかったときの記録です。2020年の作業ではChromeのキャッシュを消したあとに表示が戻りました。どの保存データが影響したかは当時の記録から特定できていません。 URL変更のエラーが出ている場合は、WordPressの現在のURLとSite Kitの接続先を確認する。接続できていて「データの取得中」が出る場合は、新規プロパティか既存プロパティかを確認する。既存 ...