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
クリーンアーキテクチャ輪読会資料 27-29章
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
koji
March 16, 2020
Technology
47
0
Share
クリーンアーキテクチャ輪読会資料 27-29章
参加しているコミュニティ、Challeng-Every-Monthの輪読会で作成した資料。
koji
March 16, 2020
More Decks by koji
See All by koji
20250914_Vibe Coding初学者向け勉強会_Devinについて
kjman678
0
33
Amazon Builder's Library 輪読会資料 ジッターを伴うタイムアウト、再試行、およびバックオフ
kjman678
0
82
時系列解析 輪読会資料 1章
kjman678
0
38
Amazon Builder's Library 輪読会資料 分散システムでのフォールバックの回避
kjman678
0
66
クリーンアーキテクチャ輪読会資料 12-14章
kjman678
0
36
Amazon Builder's Library 輪読会資料 負荷制限を使用して過負荷を回避する
kjman678
0
39
Other Decks in Technology
See All in Technology
Kiro Meetup #7 Kiro アップデート (2025/12/15〜2026/3/20)
katzueno
2
280
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
190
マルチモーダル非構造データとの闘い
shibuiwilliam
1
150
OCI技術資料 : 証明書サービス概要
ocise
1
7.2k
バックオフィスPJのPjMをコーポレートITが担うとうまくいく3つの理由
yueda256
1
160
GitHub Actions侵害 — 相次ぐ事例を振り返り、次なる脅威に備える
flatt_security
12
7.3k
ハーネスエンジニアリング×AI適応開発
aictokamiya
3
1.3k
AWSで2番目にリリースされたサービスについてお話しします(諸説あります)
yama3133
0
110
ThetaOS - A Mythical Machine comes Alive
aslander
0
240
スクラムを支える内部品質の話
iij_pr
0
180
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
120
OCI技術資料 : ロード・バランサ 概要 - FLB・NLB共通
ocise
4
27k
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
790
Joys of Absence: A Defence of Solitary Play
codingconduct
1
330
Making Projects Easy
brettharned
120
6.6k
Bash Introduction
62gerente
615
210k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
130
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
95
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
140
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
CA輪読会 27章-29章 2020/3/16(月) 22:00- 発表者:koji/メガネ男
27章 サービス:あらゆる存在 1/4 • サービスアーキテクチャ アーキテクチャは上位レベルの方針と下位レベルの詳細を分離し、を依存性の ルールに従う境界によって定義されるものである。 サービスを使用すること=アーキテクチャではない。 それはただのプロセスやプラット フォームの境界を超える関数呼び出しに
過ぎない、とボブおじさんは断じる。 2
27章 サービス:あらゆる存在 2/4 • サービスアーキテクチャ サービス毎にアプリケーションが別れていることがメリットと言われているけど、リ ソースやデータを介して間接的に繋がっている。 サービスごとに専属のチームがつき、スケーラブルであることがメリットと言われ ているが、サービスアーキテクチャだけがスケーラブルなわけではないし、開発・デ プロイ・運用の調整が重荷になることもある。
3
27章 サービス:あらゆる存在 3/4 • タクシー配車システムの例 状況:タクシーの検索、選択、発注サービスを各チームが保守・運用・開発してい る。 ここに、すべての動作に影響を与える新機能を追加すると、すべてのサービスは 結合していることから、すべてのサービスを変更する必要が生じる。 例:子猫の宅配機能。ネコアレルギー配慮のため、シフトや配車のシステムに影
響を及ぼす) 4
27章 サービス:あらゆる存在 4/4 • でもSOLIDの設計原則を慎重に検討すれば独立して開発・デプロイが可能。 • 新機能のデプロイは、再デプロイしなくても、新しいファイルをロードパスに追加す るだけで済む。→オープンクローズドの原則 • アーキテクチャの境界は、サービスではなく、サービス内部のコンポーネントで決
まる。 5
28章 テスト境界 1/3 • テストはシステムの一部であり、アーキテクチャの観点からは、対象、規模に関わ らず、すべてのテストは同じである • テストは依存性のルールに従うし、 アーキテクチャの円の最も外側にある •
テストはコンポーネントに常に依存するし、独立してデプロイ可能な、最も独立した システムコンポーネントである。 6
28章 テスト境界 2/3 • テストは普段デプロイしないので、設計と無関係と考えられがち。 システム安定化のため、設計段階でテストまで考慮する必要がある。 • 脆弱なテストの問題 共通のシステムコンポーネントを変更すると、何百や何千というテストが壊れる可 能性がある。
解決策は、変化しやすいものに依存しない設計を行うこと。 変化しやすい見た目の部分である GUIに依存すると、テストまでコロコロ 変わってしまいテストが手間になり、 テストがおろそかになるかも! 7
28章 テスト境界 3/3 • プロダクトのクラスやメソッドが変わると大量のテストを変更することになるので、 テストは脆弱になり、プロダクトのコードは柔軟性を失っていく。 • テスト段階から使用できるAPIを作成し、検証すればよい。 APIを使えば開発の影響をテストに与えずに済む。 •
ただし、テストAPIが完成物のシステムにデプロイされると危険なので、独立したコ ンポーネントに格納すべし。 8
29章 クリーン組込みアーキテクチャ 1/3 • ソフトウェアは消耗しないが、ファームウェアやハードウェアは時代遅れになる。 その結果新しいソフトウェアが必要になる。 • 時代遅れになりやすいファームウェアは少なくして、ソフトウェアを多くすることが 望ましいのに、組み込みエンジニアでないエンジニアもファームウェアを書いてい る、とボブおじさんは憤慨。
組み込みソフトウェアのアーキテクチャをクリーンにして、寿命の短いファームウェ アではなく、寿命の長いソフトウェアに注力しよう。 9
29章 クリーン組込みアーキテクチャ 2/3 • 組み込みソフトウェアは動作すること、正しいこと、速く動くパフォーマンスが優先 され、長寿となるようクリーンなコードを作ることは考慮されていない。 • 組み込みエンジニアは、ターゲットハードウェアのボトルネック * という問題があ
る。 * ハードウェアの完成を待ってからコードを実行する必要があったり、ハードウェア に欠陥があるとコードの実行に支障をきたしたりといった、必要他のエンジニアが 気にしなくて済んでいる制約事項のこと。 10
29章 クリーン組込みアーキテクチャ 3/3 • 管理できていないファームウェアやハードウェアの依存関係によって、ソフトウェア が内部から破壊される可能性もある。 • ファームウェアとソフトウェアは明確に区分すべき。 OSはファームウェアとソフトウェアを分離する(HAL)。 クリーン組み込みアーキテクチャは買収等により
変わりかねないOSと、 ソフトウェアも 区分する(OSAL)。 11