Registration info |
一般参加 Free
FCFS
発表者 Free
FCFS
|
---|---|
参加者への情報 |
(参加者と発表者のみに公開されます)
|
Description
ソフトウェアが複雑になる大きな原因が状態の複雑さです。
この状態の複雑さをできるだけ取り除くことで、ソフトウェアは見違えるようにわかりやすくなり、また挙動も安定します。
状態の複雑さを取り除くイミューターブル(変更不可)な設計の実践的な考え方とやり方を、経験豊富な3名のエンジニアがわかりやすく紹介します。
- イミュータブルなデータモデルで設計する
- イベントソーシングで設計する
- ドメインモデルをイミュータブルに設計する
タイムテーブル
内容 | 時間 | 発表者 |
---|---|---|
オープニング | 5分 | |
イミュータブルデータモデルの極意 | 60分 | 川島義隆 (株)ウルフチーフ 代表取締役 |
ドメインイベントの観点から再考するソフトウェア設計 | 30分 | かとじゅん Chatworkテックリード |
ドメイン駆動設計とイミュータブルデータモデルの素敵な関係 | 15分 | 増田 亨 (有)システム設計 代表 |
発表者3人による座談会 + Q&A | 30分 |
イミュータブルデータモデルの極意
RDBのテーブル設計は難しい作業の1つとされています。
正規化はアプローチの1つですが、それだけでは業務で使いやすく有用で変更に強いものができるとは限りません。業務で扱われるデータのライフサイクルを把握し、記録すべき事実を見つけ出しそれがロストすることが無いように設計することが併せて必要になります。
こうした設計を自然に行えるよう、これまで私が実際に開発の現場で用いてきた技法を「イミュータブルデータモデル」として体系立ててまとめて公開しています。
本セッションではその勘所をお話するとともに、効能を実感いただきます。
発表者 川島さんの自己紹介
株式会社ウルフチーフ 代表取締役。19年半SIerで様々な業種のシステム設計に携わってきた経験をもとに、2018年に独立。
より多様な設計課題を求めて、流しのアーキテクトがみなさんの開発現場へと参ります。
ドメインイベントの観点から再考するソフトウェア設計
ドメインイベントは過去に起きたドメイン上の出来事を意味します。「過去に起きた」なので後から変更できません。つまり不変(イミュータブル)なモデルです。
昨今、このドメインイベントはCQRS/Event Sourcingやマイクロサービスなどの書籍で取り上げられ、実際に実装上でドメインイベントが利用される事例も増えています。このように有益性は認識されつつありますが「うちはEvent Sourcingじゃないのでイベントは関係ありません」と視野が狭くなっている方もいます。
たとえ実装で使えなくても、ドメイン分析に基盤的な視点を与えてくれるのがドメインイベントです。おっと、これ以上 詳しいことは当日に…。
ともあれ、今回は「そもそもドメインイベントはソフトウェア設計にどのような影響を与えるのか」を再考する場にしたいと思います。
発表者 かとじゅんさんの自己紹介
Chatworkのテックリード。10歳で初めてプログラミングに触れる。SIとしてさまざまな現場での業務を経験した後、2011年より某D社、2013年より大手ソーシャルゲーム企業で、それぞれScalaやドメイン駆動設計を採用したシステム開発に従事。
2014年7月よりChatworkに参画。現在はChatwork次期アーキテクチャのプランニングや設計、開発に携わる。
ドメイン駆動設計とイミュータブルデータモデルの素敵な関係
ドメイン駆動設計は事業活動の仕組みと決め事をオブジェクトモデル(ドメインモデル)で表現することを軸にしたソフトウェア設計手法です。
ドメインモデルは、ビジネスルールに基づいた計算判断ロジックを宣言的に表現します。そして、同じ事実からは必ず同じ結果になるように設計することが重要です。この「同じ事実からは必ず同じ結果になる」は、イミュータブルデータモデルの考え方そのものです。
イミュータブルなドメインモデルとイミュータブルなデータモデルを組み合わせることで、ドメインオブジェクトとドメインで発生した事実を記録したデータベースとの双方向のマッピングがシンプルで安定したものになります。
発表者
有限会社システム設計 増田 亨