JJUGナイトセミナー「新春Java2025」 に参加しました。
CCCは昨年2度参加しましたが、ナイトセミナーは初参加。
濃厚な時間を過ごすことができました。

イベントの概要
今年最初のナイトセミナーは「分散型アーキテクチャとドメイン駆動設計」、「あなたはJVMの気持ちを理解できるか?」という2つのテーマでお送りします。
引用:
イベント参加の背景
・やっぱりJavaが好き。
・何年も実際のプログラミングから離れてるけど、メイン言語はJavaと言ってしまう。
・なのに、JVMの気持ちは考えたことが無かった。
・そして今年はソフトウェア設計をもう少し習熟したい。
持ち帰るところの多かったセッションメモ
- 分散型アーキテクチャとドメイン駆動設計
データの量・種類、速度、発信・受信場所が以前とかなりちがう。
それを取り扱うアプリケーションも多種多様になっている。
そうしたアプリケーションに対する設計の最適解のひとつがドメイン駆動設計。
溢れかえるデータ×多種多様なアプリケーションで、明確な意図が無く大きな泥団子が成長し続ける。
それに健全性をもたらすのがドメイン駆動設計。
ソフトウェア設計と事業方針を密接に関係づける。
競争優位性とソフトウェア設計を整合させる。
競争優位性の観点から業務活動を3分類し、それぞれに設計・開発の手法を変える。
中核となる事業領域に注力する。
アプリケーションごとに独自のドメインモデルがある。
アプリケーション間の連携はモデルの変換となる。
業務上同一の情報だとしてもアプリケーション毎には異なる情報として扱う。
中核モデルは開発チーム全体で同じ視線を持てるようにする。
事業戦略の実現手段としてソフトウェアシステムを整える。
明確な事業戦略がなくとも、エンジニア・アプリケーションからの理解は重要。
事業活動上の部門間などでの調整活動はアプリケーション間連携にも追従できる。
・Q&A
大きな泥団子状態を解消するのは、どこから攻めていくか。
核となる部分を見える形として、ライトな部分から切り崩していく。
事業会社は自企業の事業を理解する。受託開発では相手企業の事業を理解する。 - あなたはJVMの気持ちを理解できるか?
JVMはスタックマシン。気軽にjavapで動作が確認できる。
バイトコードを書くならClass-File API。
…む、難しかったです。。
感想とまとめ
Javaを中心に2つのまったく違うお話を聞けて濃厚なイベントでした。
増田さんの質疑応答での受託開発は相手企業のドメイン理解が必要、という言葉に色々考えてしまいました。
契約で繋がる他所の人間が、相手の事業の主軸となるドメインにオーナーシップを持つことは不健全だし現実的でもない。
結果、事業のコアドメインは自社のエンジニアが担っていく。
受託開発企業は、提供する自社サービスに競争優位性を獲得し、相手企業をイネーブリングするのが今後の生き残り方なのか。
自分は17年間受託開発でのエンジニアをしていきました。難しい。
JJUG CCC 2025 Springは6/7(日)開催予定とのことです。楽しみ。
蛇足
増田さんのお話をカンファレンス以外のオフラインの場でお聞きするの10年ぶりでした。
32歳。ソフトウェア開発の在り方もDDDの在り方も大きく変わった気がします。
自分はちゃんと成長できているのか。