DDD公演と懇談会で得た知見
はじめに
GMO kitaQにて、九工大のエンジニア就活支援団体KCL(ほとんどC3だけど)主催の成瀬さんによるDDD講演会に行ってきました!
そこで得た知見のまとめです!
DDDについて
DDD(Domain Driven Development)日本語で「ドメイン駆動開発」
前提として
「ソフトウェア開発」って難しい
- CSの知識
- チームワーク(ソフトスキル)
など、必要な技術が多い
それをうまくこなせるようにしたのがDDD。要はソフトウェア開発がテーマの設計指南書
ドメインって何?
ソフトウェア化対象領域の知識全般のこと
例) 物販
生産、取引、販売、輸送など
ドメインを中心にソフトウェア開発をしたい!
→ 最終的にそうなるような設計をすべき
→ これがDDD
おおまかな流れ
ドメインエキスパート(ドメイン)→モデリング→パターン→ソフトウェア
ドメインエキスパート
DDDにおいて最も重要なことは、対象領域のドメインについて深く理解すること。
そこで、実際に現場で働いている専門家(ドメインエキスパート)を知る必要がある
ドメインエキスパートと対話していくうえで大切なことは、お互いに専門領域が異なるので、専門用語を使わず、噛み砕いて話すことで認識の齟齬をなくすことである。→ イベントストーミングなどをしながら噛み砕いていく
ドメインエキスパートの教えてくれるドメイン全てがソフトウェア開発において重要だとは限らないので、エンジニア側で取捨選択をする。
ユビキタス言語
ユビキタス=いつでもどこでも
ドメインエキスパートと開発者間で解釈のすれ違いが起きないように、同じ言葉で喋ろう!ということ
対話だけでなく、コーディング時にもユビキタス言語を使うことが推奨されている。
クラス名、変数名など
モデリング
ソフトウェア化するものに模したもの
図や表に限らない。ドキュメントであることもある。
-
イベントストーミング
ソフトウェア化においておこるであろうイベントをどんどん書き出してく
コーディングや、開発において専門用語を使っていないのでドメインエキスパートと共に参照しながら議論できる!
例[1]
感想
九工大生の質問のレベル高杉
「じゃあコード書くね」って生コーディング見れた→爆速
Javaやっときゃな〜となった
本買お〜
エンジニア就活について
「ただコーディングだけしたい」→エンジニアじゃだめ(やってけない)やで
目的(野望)の道具としてプログラミングを使うんやで
目的(志望動機)を見つけるには?
→企業研究をしていくといいで
なぜ?
→その企業がビジネスしているサービスを深く掘っていくと、核心の課題が見えてくる
それを繰り返すことで自分の将来像も見えてくる(やりたいこと、マッチする企業の発見など)
やりたいことが見つかる→実行する→面接する→筋が通った回答ができる
プログラミングx何か で一位になることを目指すんや
プログラミングなんて上には上がいる。勝てん。
おわりに
居酒屋でわちゃわちゃ出来たのも楽しかったし、お酒飲みながら技術について語れるってほんとに羨ましいな〜!となりました
参考
[GMO]
成瀬さん https://twitter.com/nrslib
村上さん https://twitter.com/ymurakamieng
-
参照:イベントストーミング導入
↩︎
Discussion