SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 セッションレポート(AD)

レッドハットに学ぶ、レガシーモダナイゼーション戦略──ドメイン駆動設計から始める業界横断の成功手法とは?

【15-D-6】レガシーモダナイゼーションに効く!オススメのモダン化手法3選

  • X ポスト
  • このエントリーをはてなブックマークに追加

現在地の把握に必要な「戦略的ドメイン駆動設計」とは?

 4象限のスタート地点にあたるドメイン駆動設計から話を始めていこう。ドメイン駆動設計は、既存領域が混じり、広範囲に及ぶモダナイズだ。Eric Evans氏が考案したドメイン駆動設計(DDD)には、大きく分けて「戦略的ドメイン駆動設計」と「戦術的ドメイン駆動設計」の2つがある。日本だと戦術的ドメイン駆動設計が有名で、オブジェクト指向言語の設計方法として広まった。しかし本来は、戦略的ドメイン駆動設計の方が重要だ。

戦略的ドメイン駆動設計(DDD)の分類
戦略的ドメイン駆動設計(DDD)の分類

 戦略的ドメイン駆動設計とは、企業の事業戦略を考慮したモデリングパターンである。暮林氏は「大局観をビジュアライズするもので、ドメイン駆動設計の神髄に近い」と言う。ドメイン駆動設計を解説する『実践ドメイン駆動設計』の著者、Vaughn Vernon氏は次のように語っている。「飛行機からの眺めは本当に素晴らしいが、自分が一体どこにいるのか分からず、どうやって移動したらいいのかすら分からない。DDDを使いこなす人たちは地図上にコースを定め、ナビゲーション装置もチューニングしているようなものだ。その他大勢の人たちには、この安心感がない」

 実際のモダナイゼーション案件に照らして考えてみよう。ここでは事業がA、B、Cと裏方Dがあるとする。それぞれの事業の売上規模、成長の度合い、組織における位置づけや相関などから対象となるシステムがビジネス全体のどこにポジショニングしているか把握することで全体像を作ることができる。これがEvans氏の言う「現在地を把握している」だ。地図があれば向かうべきTo Be像が明確になり、どのシステムに変更を加えなくてはならないかが明確になる。

地図作りの例
地図作りの例

 もし地図がなく、現在地不明のままいきなり開発を進めたらどうだろう。請負開発でよく起こりうる状況だが、開発を進めていくうちに周囲の不都合な事情や環境が見えてくるだろう。例えば「基幹システム変更の事業Bへの影響に関するクレーム対応は、事業Aから受注しているからスコープ外」とトラブルになる。後から気づいても後の祭りだ。こうした混乱を避けるために「地図を描いてから始める」ことが必要で、ドメイン駆動設計の「戦略的」の方が大事だと分かる。

 なおレッドハットでは「Ansibleトレイルマップ」という手引きを公開していて、こちらはITプロセスのモダナイゼーションの道のりを飛行機ではなく登山の地図に例えている。

 戦略的ドメイン駆動設計では、全員が全体像を把握できることが大きなメリットだ。そしてドメインで分けた領域に名前を付けられる。暮林氏は「日本語の“命名”はすごい言葉だと思います。名前を付けることで対象に命を与え、認識できるようになるからです」と言う。モダナイズしたい領域を特定し、すでにシステム化されていたらアプリケーションシンプリファイへ、新しくシステム化すべきならアジャイルアプローチへと、次の方向性が見えてくる。

次のページ
ドメイン駆動設計の次のステップは?──「アプリケーションシンプリファイ」と「アジャイルアプローチ」

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2024 セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山出 高士(ヤマデ タカシ)

雑誌や広告写真で活動。東京書籍刊「くらべるシリーズ」でも写真を担当。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:レッドハット株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19192 2024/03/29 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング