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 full-size slide

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

    View full-size slide

  3. Evolutionary Architectureって何?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. Big ball of mud architecture

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  37. End
    Evolutionary Architecture

    View full-size slide