Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Clean Architecture 達人に学ぶソフトウェアの構造と設計輪読会 #13
Search
FurusawaKaoru
December 02, 2020
61
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Clean Architecture 達人に 学ぶソフトウェアの構造と設計 輪読会 #13
https://yourmystar.connpass.com/event/197197/
輪読会発表資料
FurusawaKaoru
December 02, 2020
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Rails Girls Zürich Keynote
gr2m
96
14k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Why Our Code Smells
bkeepers
PRO
340
58k
A designer walks into a library…
pauljervisheath
211
25k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Fireside Chat
paigeccino
43
4.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
How to build a perfect <img>
jonoalderson
1
6.1k
Transcript
Clean Architecture 達⼈に 学ぶソフトウェアの構造と設計 輪読会 #13 Kaoru Furusawa
第27章 サービス: あらゆる存在 • サービスアーキテクチャ • サービスのメリット? • ⼦猫の問題 •
救世主のオブジェクト • コンポーネントベースのサービス • 横断的関⼼事
サービスアーキテクチャ システムアーキテクチャー → 上位レベルの⽅針と下位レベルの詳細を分離し、依存性の ルールに従う境界によって定義される サービス → アプリケーションの振る舞いを分離する サービスはサービスであり、 アーキテクチャーを定義するものではない
サービスのメリット? 誤った分離 変数の分離とインターフェースの明確な定義? 誤った開発とデプロイの独⽴ 専属開発チームとデプロイの独⽴ → スケーラブル?
⼦猫の問題 タクシー配⾞システムを⼩さなマイクロサービスを たくさん⽤意して構築 ↓ 1年以上の稼働している、エンジニアのモチベ ↓ ⼦猫宅配サービス開始計画によって全てのサービスを 変更する必要がある 「横断的関⼼事」の問題
救世主のオブジェクト Template Method https://qiita.com/shoheiyokoy ama/items/c2ce16b4f492cd01 4d50 Strategy https://qiita.com/kasei- san/items/91ab181443df03da 0343
コンポーネントベースのサービス
横断的関⼼事 アーキテクチャの境界はサービスを横断することで コンポーネントに分割している
第28章 テスト境界 • システムコンポーネントとしてのテスト • テスト容易性のための設計 • テストAPI
システムコンポーネントとしてのテスト テストは⾮常に詳細で具体的であり、テストするコードに 対して常に依存している。 テストの役割は開発をサポートすること。それでも他と同じ システムコンポーネントである。
テスト容易性のための設計 テストをシステムの設計にうまく統合しないと不安定なものにな る → Fatすぎて改修したくないメソッドとか システムと強く結合したテストは⼩さな変更でも多くのテストが 壊れる可能性がある 変化しやすいものに依存しない
テストAPI ⽬的 アプリケーションから分離すること。UIとアプリケーション構造 からテストを分離する。