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
クリーンアーキテクチャ輪読会資料 27-29章
Search
koji
March 16, 2020
Technology
53
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クリーンアーキテクチャ輪読会資料 27-29章
参加しているコミュニティ、Challeng-Every-Monthの輪読会で作成した資料。
koji
March 16, 2020
More Decks by koji
See All by koji
20250914_Vibe Coding初学者向け勉強会_Devinについて
kjman678
0
47
Amazon Builder's Library 輪読会資料 ジッターを伴うタイムアウト、再試行、およびバックオフ
kjman678
0
90
時系列解析 輪読会資料 1章
kjman678
0
42
Amazon Builder's Library 輪読会資料 分散システムでのフォールバックの回避
kjman678
0
71
クリーンアーキテクチャ輪読会資料 12-14章
kjman678
0
41
Amazon Builder's Library 輪読会資料 負荷制限を使用して過負荷を回避する
kjman678
0
44
Other Decks in Technology
See All in Technology
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
230
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
510
Goodbye ShellScript, Hello File-based App
shunsock
0
470
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
事業課題から技術的負債に向き合う
sansantech
PRO
2
2k
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
980
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
240
あけおめLINE 傾向とその対策
nasa9084
0
180
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
520
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
150
ScotSecure West 2026 - Glasgow
raybugg
0
120
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
200
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Crafting Experiences
bethany
1
350
Music & Morning Musume
bryan
48
7.4k
New Earth Scene 8
popppiees
4
2.6k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Navigating Team Friction
lara
192
16k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
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