Armond
← Output
tech

レガシーアプリケーションでドメインを再発見するための活動

2026-05-03

レガシーアプリケーションの特徴

ドメインを再発見するための活動

戦略的な活動(問題空間)と戦術的な活動(解決空間)に分けられる。

戦略的な活動

ドメイン言語の再解釈

レガシーコードには、歪んだドメイン用語がすでに埋め込まれている。以下の観点で見直す。

同名異義 — 同じ名前だが、実は異なる文脈で別の意味で使われている言葉はないか 異名同義 — 異なる名前だが、実は同じ概念を指している言葉はないか

例:user と customer、name と title など。

ドメイン境界の再定義

購入処理・決済処理・広告処理などが互いに依存し、境界が曖昧になっていることがある。
ドメインの境界を跨いだ片方向・双方向の依存は変更コストを押し上げる。
また、単一の境界の中に責務が集中しすぎると、それ自体が巨大な複雑さの温床になる。

戦術的な活動

同名の概念を分離する

たとえば user ひとつで担っていた役割を、user と customer に分離する。
テーブル構造が似通っていても、文脈ごとに分けたほうが変更は確実に楽になる。
ファットモデルの発生も防げる。

境界を垂直に切る

水平なレイヤー分割ではなく、ドメイン境界に沿って垂直に分割する。
これがマイクロサービス移行の土台になる。