Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Evolutionary Architecture

2d855b951ff3160c55915821261432f9?s=47 uzzu
May 16, 2016

Evolutionary Architecture

2d855b951ff3160c55915821261432f9?s=128

uzzu

May 16, 2016
Tweet

Transcript

  1. Evolutionary Architecture @uzzu

  2. Evolutionary Architecture(進化的アーキテクチャ)は まだ定義が固まっているものではありません。 このスライドは私個⼈の⾒解です。

  3. Evolutionary Architectureって何?

  4. https://www.thoughtworks.com/radar/techniques/evolutionary-architecture

  5. https://www.thoughtworks.com/radar/techniques/evolutionary-architecture

  6. “An evolutionary architecture supports continual and incremental change as a

    first principle along multiple dimentions.” 第⼀原則として、複数の次元で継続的かつ漸進的な変更を⽀援する
  7. 複数の次元で継続的かつ漸進的な変更...?

  8. Traditional Architecture 要求(次元) 変更

  9. Traditional Architecture 要求(次元) 変更

  10. Traditional Architecture 要求(次元) 変更

  11. Traditional Architecture 要求(次元) 変更

  12. Traditional Architecture 要求(次元) 変更

  13. Traditional Architecture 要求(次元) 変更

  14. Traditional Architecture 要求(次元) 変更

  15. 要求(次元) 変更 Traditional Architecture

  16. Big ball of mud architecture

  17. Traditional Architecture 要求(次元) 変更

  18. Evolutionary Architecture 要求(次元) 変更

  19. Evolutionary Architecture Pain-Driven 要求(次元) 変更

  20. Evolutionary Architecture Last Responsible Moment 要求(次元) 変更

  21. Evolutionary Architecture Pain-Driven Last Responsible Moment 要求(次元) 変更

  22. 複数の次元で継続的かつ漸進的な変更を⽀援する 要求(次元) 変更

  23. Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible

    to Hypothesis-Driven Development)
  24. Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible

    to Hypothesis-Driven Development)
  25. Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible

    to Hypothesis-Driven Development)
  26. Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible

    to Hypothesis-Driven Development)
  27. そもそも、なぜ⼿軽に差し替える必要があるかといえば、以下の様な 理由があります。 • 依存している基盤実装(レガシーコード、3rd-party製のライブラ リ)に問題が発覚した時に、利⽤者に影響なく別の基盤実装に差し 替えられるようにする為 • パッと基盤実装を捨てる事ができるのはライブラリ開発者の 精神的負荷を⼤きく軽減します

  28. そもそも、なぜ⼿軽に差し替える必要があるかといえば、以下の様な 理由があります。 • 新しい技術や導⼊したい技術を積極的に導⼊・検証できるように する為 • 利⽤者のスピード感に追いつく必要があります。依存ライブ ラリが⾜を引きずってはいけません

  29. ・ Fitness Functions (Ignore) ・ Pain-Driven ・ Last Responsible Moment

  30. Evolutionary Architecture Pain-Driven Last Responsible Moment 要求(次元) 変更

  31. ? Fitness Functions (Ignore) ✔ Pain-Driven ✔ Last Responsible Moment

  32. Summary

  33. ・Evolutionary Architectureは、第⼀原則として、複数の次元で継 続的かつ漸進的な変更を⽀援する ・第⼀原則から概観できる設計⼿法の特徴は... Fitness Functions ※今回は説明しませんでした Pain-Driven (痛みを⽣みそうなものから) Last

    Responsible Moment (最終責任時点の前までに決定) ・Evolutionary Architectureの特徴は... Modularity and Coupling (モジュール化とコンポーネント分離) Organized Around Business Capabilities (ビジネス能⼒に沿った組織化) Experimentation (ビジネスに「実験」の⼒を与える)
  34. https://www.thoughtworks.com/insights/blog/microservices-evolutionary-architecture

  35. https://www.thoughtworks.com/radar/techniques/evolutionary-architecture

  36. https://www.infoq.com/jp/news/2016/04/evolutionary-architectures

  37. https://www.thoughtworks.com/books/building-evolutionary-architectures

  38. End Evolutionary Architecture