Slide 1

Slide 1 text

ValueObjectから始める DDDのスモールステップ エンジニアカウンセラー 白柳隆司

Slide 2

Slide 2 text

自己紹介 エンジニアカウンセラー 白栁 隆司 主な開発言語 @IT 自分戦略研究所 エンジニアライフにて「コレがワタシの生き様」連載中!! twitter:@ShirayanagiRyuj 1981年 5月 生まれる 1993年10月 プログラムに初めて触れる 1995年 5月 自宅にPC導入 1997年 4月 高校でプログラミングを学習 2000年 4月 地元の中小ソフトハウス勤務 2005年 4月 東京SESエンジニア活動開始 2019年 9月 フリーランス活動開始! ♥ TRPG, ボードゲーム, ポケモン, 特撮, スキー etc... ・C/C++ ・VB、VBA、VBScript ・C#(.net系) ・PHP ・Python ・PL/SQL ・JavaScript(JQuery)

Slide 3

Slide 3 text

今回説明しないこと ● DDD(ドメイン駆動設計)とは? ● ValueObjectとは? ● 職場でDDDを導入する方法 ● 効果的なDDDの実践

Slide 4

Slide 4 text

今回説明しないこと ● DDD(ドメイン駆動設計)とは? ● ValueObjectとは? ● 職場でDDDを導入する方法 ● 効果的なDDDの実践 → この本を読めばいいと思う(CM)

Slide 5

Slide 5 text

今回話すこと いきなりDDDをフルで導入するのはツライので ValueObjectに限って導入することで 簡単お手軽にDDDを導入した気分になって 気 持 ち よ く な ろ う !

Slide 6

Slide 6 text

DDDの導入どうしますか? DDD導入の壁 1. DDDなくても作れるからいいじゃん 2. DDDは手間 vs. 今までの方が楽 3. DDD化のコスト 世の中、基本的に新しいことが嫌い

Slide 7

Slide 7 text

DDDの導入どうしますか?2 その前に… あなたに導入の権限ありますか? 権限がある → 「ゴタゴタ言わずにヤレ」と言える 権限がない → 沢山の人にお願い or 説得をする チョーメンドイ!!

Slide 8

Slide 8 text

限定的な導入をしよう 自分の許されている範囲だけで勝手に導入してしまう ● 説得不要 ● コーディング規約範囲内なら怒られない ● DDDの良さを実際に見せることができる ValueObject に限定して導入するのが一番やり易い!

Slide 9

Slide 9 text

他の利点 ● 新規やリファクタリングの案件でなくても導入できる  → 項目の追加とか見直し、みたいな所から導入   ex. 軽減税率導入時の税率項目、新しいフラグ ● [機能の集約]と[関心の分離]が体験できる  → 実際に手を動かすのが一番強い!

Slide 10

Slide 10 text

注意!! 今話したことは【DDD】ではない 本当のDDDやりたかったら、偉い人説得するか、偉くなるしかない! DDDの真髄: 利用者→開発者までの全員が理解できるモデルを作って そのモデルで要件分析から実装まで一気通貫でやる

Slide 11

Slide 11 text

実際にやってみたこと ● ID項目の機能変更   採番ルールが変わったタイミングで、ごっそりValueObject化してみた  初めてのValueObjectで、気付きが多かった AtomicDesign ● Functionボタン群(GUI部)のクラス化   同じボタンを12個並べて、色とか見出しをカスタムできるような仕組みを 個々に入 れていたのを、配列化&クラス化  元々の位置計算機能を拡張して、ボタンの増減まで対応できるようになった

Slide 12

Slide 12 text

ご清聴ありがとうございました エンジニアカウンセラー 白柳隆司 「コレザマ」を宜しく!