ValueObjectから始めるDDDのスモールステップ

 ValueObjectから始めるDDDのスモールステップ

DDDを本格的に導入できる現場/立場ではない人へ

ValueObjectから始めて、DDDへの道筋を作ってみませんか?

実際に、ValueObjectに限定してプロジェクトに取り入れた経験から、感じたことをまとめてみました。

Bf7fe621f4fe1615c228ef8a79b87282?s=128

ShirayanagiRyuji

January 10, 2020
Tweet

Transcript

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

  2. 自己紹介 エンジニアカウンセラー 白栁 隆司 主な開発言語 @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)
  3. 今回説明しないこと • DDD(ドメイン駆動設計)とは? • ValueObjectとは? • 職場でDDDを導入する方法 • 効果的なDDDの実践

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

    この本を読めばいいと思う(CM)
  5. 今回話すこと いきなりDDDをフルで導入するのはツライので ValueObjectに限って導入することで 簡単お手軽にDDDを導入した気分になって 気 持 ち よ く な

    ろ う !
  6. DDDの導入どうしますか? DDD導入の壁 1. DDDなくても作れるからいいじゃん 2. DDDは手間 vs. 今までの方が楽 3. DDD化のコスト

    世の中、基本的に新しいことが嫌い
  7. DDDの導入どうしますか?2 その前に… あなたに導入の権限ありますか? 権限がある → 「ゴタゴタ言わずにヤレ」と言える 権限がない → 沢山の人にお願い or

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

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

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

  11. 実際にやってみたこと • ID項目の機能変更   採番ルールが変わったタイミングで、ごっそりValueObject化してみた  初めてのValueObjectで、気付きが多かった AtomicDesign • Functionボタン群(GUI部)のクラス化  

    同じボタンを12個並べて、色とか見出しをカスタムできるような仕組みを 個々に入 れていたのを、配列化&クラス化  元々の位置計算機能を拡張して、ボタンの増減まで対応できるようになった
  12. ご清聴ありがとうございました エンジニアカウンセラー 白柳隆司 「コレザマ」を宜しく!