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

Evolutionary Architecture

uzzu
May 16, 2016

Evolutionary Architecture

uzzu

May 16, 2016
Tweet

More Decks by uzzu

Other Decks in Technology

Transcript

  1. Evolutionary Architecture
    @uzzu

    View Slide

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

    View Slide

  3. Evolutionary Architectureって何?

    View Slide

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

    View Slide

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

    View Slide

  6. “An evolutionary architecture supports
    continual and incremental change as a first
    principle along multiple dimentions.”
    第⼀原則として、複数の次元で継続的かつ漸進的な変更を⽀援する

    View Slide

  7. 複数の次元で継続的かつ漸進的な変更...?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. Big ball of mud architecture

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. Summary

    View Slide

  33. ・Evolutionary Architectureは、第⼀原則として、複数の次元で継
    続的かつ漸進的な変更を⽀援する
    ・第⼀原則から概観できる設計⼿法の特徴は...
    Fitness Functions ※今回は説明しませんでした
    Pain-Driven (痛みを⽣みそうなものから)
    Last Responsible Moment (最終責任時点の前までに決定)
    ・Evolutionary Architectureの特徴は...
    Modularity and Coupling (モジュール化とコンポーネント分離)
    Organized Around Business Capabilities
    (ビジネス能⼒に沿った組織化)
    Experimentation (ビジネスに「実験」の⼒を与える)

    View Slide

  34. https://www.thoughtworks.com/insights/blog/microservices-evolutionary-architecture

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  38. End
    Evolutionary Architecture

    View Slide