Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

保守とDDDと私

6,050 views

Published on

2015/09/19 DevLove関西発表資料
DDD(ドメイン駆動設計)を保守する中で思った事や困った点をまとめてみました。

Published in: Technology
  • Be the first to comment

保守とDDDと私

  1. 1. 保守とDDDと私 1 2015.09.19 DevLove関西 「DDD実践者の話をきいてみよう」 発表資料
  2. 2. 2 保守とDDDと私 安易な改良しないため ドメイン層注力したいから 保守費確保してね 価値あるアプリのため キレイでいさせて
  3. 3. 自己紹介 3 ●かわべ たくや ●Twitter : @kawakawa ●大阪にてDDD奮闘中!
  4. 4. プロジェクトは何で評価される? 新規開発プロジェクトの評価は、いつ判るのでしょう か。運用開始後でしょうか。 ドメインエキスパートも万能ではありません、運用し てから判る気づきがあるかも知れません。 業務形態が時代に合わせ、変化していくかも知れま せん。 4
  5. 5. DDDの本領は保守で発揮される 変化する事が運命づけられているアプリ・サービスに おいて、如何に対応していくのか。 プロジェクトの評価はそこで決まると思っております。 まさにDDDの真骨頂だと思います。 5
  6. 6. 価値 色々・・ 勿論、プロジェクト評価基準は様々あります。 費用だったり、期間だったり、顧客満足度だったり。 一概に良いプロジェクトとは何とは言えないもので す。 今回は、変化への対応という観点で考えたいと思い ます。 6
  7. 7. おことわり 保守といっても様々な形態があります。 今からお話しさせて頂く内容は、実際に経験した範 囲での話になります。 7
  8. 8. 保守困った事:文化継承 開発チームがそのまま保守チームに移行できたら良 いのですが、エース級プログラマは他開発プロジェク トに引き抜かれたり、仕様を把握していない新メン バーが補充されたりします。 人員変更で発生する問題が、文化の継承です。 開発期の文化が途絶えることで、様々な影響が随所 に出てきます。 8
  9. 9. 保守困った事:ビジネスロジックダダ漏れ ドメイン層に注力しないと、簡単にビジネスロジックは 漏れ出します。ダダ漏れです。 保守では、UI変更の依頼も多いのですが、見えな い危険が多く潜んでいます。 チェックボックスから、ラジオボタンに変えるだけ でビジネスロジックの意味合いが変わる場合があり ます。UI変更が与える影響は、なかなか気付けませ ん(ソースに意図が残らないから)。 9
  10. 10. 保守困った事:モデル認識不足 簡単な改修だと思っていたが、意外と深いところまで モデルを考えないと行けない事もあります。 消費税を例に挙げると、 注文品を発送した時と、返品された時では、時期に よって郵送料が変わる事があります。 通勤定期の月割(税別)計算も、購入時の税率で計 算しなくてはなりません。 モデルは意外と簡単に、壊れる時は壊れます。 10
  11. 11. 保守困った事:●●フラグ 改修範囲の影響がどこまで及ぶのか、把握するのは 難しいです。 場合により、新たな●●フラグを用意して、フラグを 立てた時だけ、改修内容が動作するようにしたりしま す。 改修を重ねるとフラグだらけになり、ドメイン層は見る も無残な姿に。刻の涙を見ることになります。 11
  12. 12. 保守困った事:ジェンガ プログラミング 12
  13. 13. 保守困った事:ジェンガ プログラミング もともと、技術的負債がタップリあるプロジェクトの保 守。DDD以前の問題・・・。 保守期間では大きく負債返済することは難しいので、 2期開発まで待つか、腐敗防止層を導入して、少しづ ず返済していくか戦略が求められます。 そして、大抵諦めます。 13
  14. 14. 保守困った事:ドメインエキスパート不在 開発チームが人員変更すると同じように、顧客の人 員も変わる事があります。 開発時にはエキスパートだった担当者も代替わりし、 当初の意図・目的から、遺脱した要望を出されること もあります。 費用も時間も確保が難しい保守において、ドメイン層 に大胆なメスを入れることもできず、泣く泣くUI層でお 茶を濁す羽目になります。 14
  15. 15. まとめ(1) DDDで開発した案件の保守。 DDDではない案件の保守。 様々ありますが、そもそも保守とは何ぞやに突き当 たります。 瑕疵担保期間+次期大型開発までの繋ぎ役として 保守を見てしまうと、時間・費用の問題に突き当たり 、ドメイン層を守るだけで精一杯です。 15
  16. 16. まとめ(2) DDDから見れば、永遠の開発期間であってほしいの ですが、現実問題そうも言ってられません(涙 保守期間で技術的負債を増やしてしまうという、本末 転倒にならないためにも、開発時に如何にドメイン層 に注力できるかが、今考えられる唯一の解決策です 。 保守担当者を少しでも救う為にも、みなさん頑張って いきましょう!! 16
  17. 17. ご清聴ありがとうございました 17

×