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
2
320
Evolutionary Architecture
uzzu
May 16, 2016
Tweet
Share
More Decks by uzzu
See All by uzzu
Context Receiversに思いを馳せる / Context Receivers
uzzu
0
710
StoreKitのこれまでとこれから / StoreKit 2 from 1
uzzu
5
18k
Autofill Framework
uzzu
0
130
アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019
uzzu
3
4.5k
Billing Client 2.0 acknowledgement
uzzu
0
17k
Promoting IAP対応から学ぶ外部アプリ内課金実装 / Promoting IAP and others
uzzu
2
1.5k
ブログ作り直した / My blog @ Othlo Tech
uzzu
0
170
新規アプリ開発を支えるユーザ・決済基盤
uzzu
2
2.8k
kotlin-mpp-library-tips
uzzu
1
6.4k
Other Decks in Technology
See All in Technology
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
370
QA業務を変える(!?)AIを併用した不具合分析の実践
ma2ri
0
150
Azure Well-Architected Framework入門
tomokusaba
1
130
知覚とデザイン
rinchoku
1
600
AI駆動で進める依存ライブラリ更新 ─ Vue プロジェクトの品質向上と開発スピード改善の実践録
sayn0
1
320
組織全員で向き合うAI Readyなデータ利活用
gappy50
1
860
[読書]AWSゲームブック〜GuardDuty魔神とインシデント対応の旅〜DevIO2025
cmusudakeisuke
0
180
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
1
740
AI-Readyを目指した非構造化データのメダリオンアーキテクチャ
r_miura
1
330
serverless team topology
_kensh
3
230
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
0
230
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Mobile First: as difficult as doing things right
swwweet
225
10k
Visualization
eitanlees
149
16k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
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