Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Evolutionary Architecture
Search
uzzu
May 16, 2016
Technology
360
2
Share
Evolutionary Architecture
uzzu
May 16, 2016
More Decks by uzzu
See All by uzzu
Context Receiversに思いを馳せる / Context Receivers
uzzu
0
740
StoreKitのこれまでとこれから / StoreKit 2 from 1
uzzu
5
21k
Autofill Framework
uzzu
0
140
アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019
uzzu
3
4.6k
Billing Client 2.0 acknowledgement
uzzu
0
17k
Promoting IAP対応から学ぶ外部アプリ内課金実装 / Promoting IAP and others
uzzu
2
1.6k
ブログ作り直した / My blog @ Othlo Tech
uzzu
0
210
新規アプリ開発を支えるユーザ・決済基盤
uzzu
2
2.9k
kotlin-mpp-library-tips
uzzu
1
6.5k
Other Decks in Technology
See All in Technology
LLM時代の検索アーキテクチャと技術的意思決定
shibuiwilliam
2
840
Snowflake Intelligence導入で 分かった活用のコツ
wonohe
0
110
マルチエージェント × ハーネスエンジニアリング × GitLab Duo Agent Platformで実現する「AIエージェントに仕事をさせる時代へ。」 / 20260421 GitLab Duo Agent Platform
n11sh1
0
140
AIエージェントの権限管理 1: MCPサーバー・ツールの Fine grained access control 編
ren8k
3
480
弁護士ドットコム株式会社 エンジニア職向け 会社紹介資料
bengo4com
1
120
最近の技術系の話題で気になったもの色々(IoT系以外も) / IoTLT 花見予定会(たぶんBBQ) @都立潮風公園バーベキュー広場
you
PRO
1
220
クラウドネイティブな開発 ~ 認知負荷に立ち向かうためのコンテナ活用
literalice
0
100
20260415_生成AIを専属DSに_自動レポート作成_ハンズオン_交通事故データ
doradora09
PRO
0
110
Azure Static Web Apps の自動ビルドがタイムアウトしやすくなった状況に対応した件/global-azure2026
thara0402
0
360
ネットワーク運用を楽にするAWS DevOps Agent活用法!! / 20260421 Masaki Okuda
shift_evolve
PRO
2
190
60分で学ぶ最新Webフロントエンド
mizdra
PRO
33
18k
AI時代のガードレールとしてのAPIガバナンス
nagix
0
200
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.2k
The browser strikes back
jonoalderson
0
960
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
200
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Being A Developer After 40
akosma
91
590k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Un-Boring Meetings
codingconduct
0
270
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
180
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
Music & Morning Musume
bryan
47
7.2k
Transcript
Evolutionary Architecture @uzzu
Evolutionary Architecture(進化的アーキテクチャ)は まだ定義が固まっているものではありません。 このスライドは私個⼈の⾒解です。
Evolutionary Architectureって何?
https://www.thoughtworks.com/radar/techniques/evolutionary-architecture
https://www.thoughtworks.com/radar/techniques/evolutionary-architecture
“An evolutionary architecture supports continual and incremental change as a
first principle along multiple dimentions.” 第⼀原則として、複数の次元で継続的かつ漸進的な変更を⽀援する
複数の次元で継続的かつ漸進的な変更...?
Traditional Architecture 要求(次元) 変更
Traditional Architecture 要求(次元) 変更
Traditional Architecture 要求(次元) 変更
Traditional Architecture 要求(次元) 変更
Traditional Architecture 要求(次元) 変更
Traditional Architecture 要求(次元) 変更
Traditional Architecture 要求(次元) 変更
要求(次元) 変更 Traditional Architecture
Big ball of mud architecture
Traditional Architecture 要求(次元) 変更
Evolutionary Architecture 要求(次元) 変更
Evolutionary Architecture Pain-Driven 要求(次元) 変更
Evolutionary Architecture Last Responsible Moment 要求(次元) 変更
Evolutionary Architecture Pain-Driven Last Responsible Moment 要求(次元) 変更
複数の次元で継続的かつ漸進的な変更を⽀援する 要求(次元) 変更
Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible
to Hypothesis-Driven Development)
Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible
to Hypothesis-Driven Development)
Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible
to Hypothesis-Driven Development)
Charstaristics Modularity and Coupling Organized Around Buisiness Capabilities Experimentation (Possible
to Hypothesis-Driven Development)
そもそも、なぜ⼿軽に差し替える必要があるかといえば、以下の様な 理由があります。 • 依存している基盤実装(レガシーコード、3rd-party製のライブラ リ)に問題が発覚した時に、利⽤者に影響なく別の基盤実装に差し 替えられるようにする為 • パッと基盤実装を捨てる事ができるのはライブラリ開発者の 精神的負荷を⼤きく軽減します
そもそも、なぜ⼿軽に差し替える必要があるかといえば、以下の様な 理由があります。 • 新しい技術や導⼊したい技術を積極的に導⼊・検証できるように する為 • 利⽤者のスピード感に追いつく必要があります。依存ライブ ラリが⾜を引きずってはいけません
・ Fitness Functions (Ignore) ・ Pain-Driven ・ Last Responsible Moment
Evolutionary Architecture Pain-Driven Last Responsible Moment 要求(次元) 変更
? Fitness Functions (Ignore) ✔ Pain-Driven ✔ Last Responsible Moment
Summary
・Evolutionary Architectureは、第⼀原則として、複数の次元で継 続的かつ漸進的な変更を⽀援する ・第⼀原則から概観できる設計⼿法の特徴は... Fitness Functions ※今回は説明しませんでした Pain-Driven (痛みを⽣みそうなものから) Last
Responsible Moment (最終責任時点の前までに決定) ・Evolutionary Architectureの特徴は... Modularity and Coupling (モジュール化とコンポーネント分離) Organized Around Business Capabilities (ビジネス能⼒に沿った組織化) Experimentation (ビジネスに「実験」の⼒を与える)
https://www.thoughtworks.com/insights/blog/microservices-evolutionary-architecture
https://www.thoughtworks.com/radar/techniques/evolutionary-architecture
https://www.infoq.com/jp/news/2016/04/evolutionary-architectures
https://www.thoughtworks.com/books/building-evolutionary-architectures
End Evolutionary Architecture