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
Clean_Architecture輪読会_6.pdf
Search
kojirock5260
February 18, 2020
Technology
98
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Clean_Architecture輪読会_6.pdf
kojirock5260
February 18, 2020
More Decks by kojirock5260
See All by kojirock5260
テスト駆動開発_輪読会_vol.1.pdf
kojirock5260
0
660
Clean_Architecture輪読会_11.pdf
kojirock5260
0
88
Clean_Architecture輪読会_1.pdf
kojirock5260
0
350
Effective_DevOps_輪読会_vol.14.pdf
kojirock5260
0
270
Effective_DevOps_輪読会_vol.11.pdf
kojirock5260
0
250
Effective_DevOps_輪読会_vol.3.pdf
kojirock5260
0
73
Effective_DevOps_輪読会_vol.7.pdf
kojirock5260
1
280
初心者にやさしいLT会1.pdf
kojirock5260
0
610
レガシー感謝の日で発表してみたかった話
kojirock5260
0
1.4k
Other Decks in Technology
See All in Technology
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
200
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.2k
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
570
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
110
【Oracle AI Spotlight ウェビナー】AWSか、Azureか、Google Cloudか。その議論にオラクルを含める意義。
oracle4engineer
PRO
2
230
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.4k
enechainの内製セルフサービスプラットフォーム
hiyosi
0
110
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
3
2.2k
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
350
Self Healing Rollouts: Automating Production Fixes with Agentic AI
kdubois
0
150
grill-me(grilling):AI駆動開発を超助けてくれるSkill / grill me
mathbullet
0
100
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
230
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Code Review Best Practice
trishagee
74
20k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
460
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
Design in an AI World
tapps
1
300
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Transcript
Clean Architecture 輪読会#6 Clean Architecture 輪読会#6 Clean Architecture 輪読会#6 Clean
Architecture 輪読会#6 Clean Architecture 輪読会#6 Clean Architecture 輪読会#6 2020/02/18 2020/02/18 2020/02/18 2020/02/18 2020/02/18 2020/02/18 1 / 17
15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15
章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? アーキテクチャの形状の目的は、そこに含まれるソフトウェアシステム アーキテクチャの形状の目的は、そこに含まれるソフトウェアシステム アーキテクチャの形状の目的は、そこに含まれるソフトウェアシステム アーキテクチャの形状の目的は、そこに含まれるソフトウェアシステム アーキテクチャの形状の目的は、そこに含まれるソフトウェアシステム アーキテクチャの形状の目的は、そこに含まれるソフトウェアシステム の の の の の の 開発・デプロイ・運用・保守 開発・デプロイ・運用・保守 開発・デプロイ・運用・保守 開発・デプロイ・運用・保守 開発・デプロイ・運用・保守 開発・デプロイ・運用・保守 を容易にすることである。それらを容易 を容易にすることである。それらを容易 を容易にすることである。それらを容易 を容易にすることである。それらを容易 を容易にすることである。それらを容易 を容易にすることである。それらを容易 にするためにの戦略は、できるだけ長い期間、できるだけ多く にするためにの戦略は、できるだけ長い期間、できるだけ多く にするためにの戦略は、できるだけ長い期間、できるだけ多く にするためにの戦略は、できるだけ長い期間、できるだけ多く にするためにの戦略は、できるだけ長い期間、できるだけ多く にするためにの戦略は、できるだけ長い期間、できるだけ多く選択肢を 選択肢を 選択肢を 選択肢を 選択肢を 選択肢を 残すこと 残すこと 残すこと 残すこと 残すこと 残すことである。 である。 である。 である。 である。 である。 2 / 17
15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15
章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 開発 開発 開発 開発 開発 開発 開発チームの規模や、開発段階によって、考慮しなくてはならないア 開発チームの規模や、開発段階によって、考慮しなくてはならないア 開発チームの規模や、開発段階によって、考慮しなくてはならないア 開発チームの規模や、開発段階によって、考慮しなくてはならないア 開発チームの規模や、開発段階によって、考慮しなくてはならないア 開発チームの規模や、開発段階によって、考慮しなくてはならないア ーキテクチャは異なる ーキテクチャは異なる ーキテクチャは異なる ーキテクチャは異なる ーキテクチャは異なる ーキテクチャは異なる 3 / 17
15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15
章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? デプロイ デプロイ デプロイ デプロイ デプロイ デプロイ 開発の早い段階から、アーキテクトがデプロイの問題について考える 開発の早い段階から、アーキテクトがデプロイの問題について考える 開発の早い段階から、アーキテクトがデプロイの問題について考える 開発の早い段階から、アーキテクトがデプロイの問題について考える 開発の早い段階から、アーキテクトがデプロイの問題について考える 開発の早い段階から、アーキテクトがデプロイの問題について考える ことが大事。 ことが大事。 ことが大事。 ことが大事。 ことが大事。 ことが大事。 4 / 17
15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15
章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 運用 運用 運用 運用 運用 運用 運用の問題はお金で殴れば解決できることが往々にしてある。 運用の問題はお金で殴れば解決できることが往々にしてある。 運用の問題はお金で殴れば解決できることが往々にしてある。 運用の問題はお金で殴れば解決できることが往々にしてある。 運用の問題はお金で殴れば解決できることが往々にしてある。 運用の問題はお金で殴れば解決できることが往々にしてある。 運用におけるアーキテクチャの役割は、システムの運用ニーズを伝え 運用におけるアーキテクチャの役割は、システムの運用ニーズを伝え 運用におけるアーキテクチャの役割は、システムの運用ニーズを伝え 運用におけるアーキテクチャの役割は、システムの運用ニーズを伝え 運用におけるアーキテクチャの役割は、システムの運用ニーズを伝え 運用におけるアーキテクチャの役割は、システムの運用ニーズを伝え ること。 ること。 ること。 ること。 ること。 ること。 5 / 17
15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15
章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 保守 保守 保守 保守 保守 保守 アーキテクチャを慎重に考えることで、保守時に発生するリスクを大 アーキテクチャを慎重に考えることで、保守時に発生するリスクを大 アーキテクチャを慎重に考えることで、保守時に発生するリスクを大 アーキテクチャを慎重に考えることで、保守時に発生するリスクを大 アーキテクチャを慎重に考えることで、保守時に発生するリスクを大 アーキテクチャを慎重に考えることで、保守時に発生するリスクを大 幅に軽減できる 幅に軽減できる 幅に軽減できる 幅に軽減できる 幅に軽減できる 幅に軽減できる 6 / 17
15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 15
章 アーキテクチャとは? 15 章 アーキテクチャとは? 15 章 アーキテクチャとは? 選択肢を残しておく 選択肢を残しておく 選択肢を残しておく 選択肢を残しておく 選択肢を残しておく 選択肢を残しておく DB やフレームワークなどの詳細な技術の決定を初期段階で下す必要は DB やフレームワークなどの詳細な技術の決定を初期段階で下す必要は DB やフレームワークなどの詳細な技術の決定を初期段階で下す必要は DB やフレームワークなどの詳細な技術の決定を初期段階で下す必要は DB やフレームワークなどの詳細な技術の決定を初期段階で下す必要は DB やフレームワークなどの詳細な技術の決定を初期段階で下す必要は ない。 ない。 ない。 ない。 ない。 ない。 会社ですでに決定しているものがあった場合、優秀なアーキテクトなら 会社ですでに決定しているものがあった場合、優秀なアーキテクトなら 会社ですでに決定しているものがあった場合、優秀なアーキテクトなら 会社ですでに決定しているものがあった場合、優秀なアーキテクトなら 会社ですでに決定しているものがあった場合、優秀なアーキテクトなら 会社ですでに決定しているものがあった場合、優秀なアーキテクトなら ば、 ば、 ば、 ば、 ば、 ば、まだ決まっていないと主張する まだ決まっていないと主張する まだ決まっていないと主張する まだ決まっていないと主張する まだ決まっていないと主張する まだ決まっていないと主張する 7 / 17
16 章 独立性 16 章 独立性 16 章 独立性 16
章 独立性 16 章 独立性 16 章 独立性 システムのユースケース システムのユースケース システムのユースケース システムのユースケース システムのユースケース システムのユースケース システムの運用 システムの運用 システムの運用 システムの運用 システムの運用 システムの運用 システムの開発 システムの開発 システムの開発 システムの開発 システムの開発 システムの開発 システムのデプロイ システムのデプロイ システムのデプロイ システムのデプロイ システムのデプロイ システムのデプロイ 8 / 17
独立性 独立性 独立性 独立性 独立性 独立性 システムのユースケース システムのユースケース システムのユースケース システムのユースケース
システムのユースケース システムのユースケース アーキテクチャレベルでシステムの意図がわかるように、 アーキテクチャレベルでシステムの意図がわかるように、 アーキテクチャレベルでシステムの意図がわかるように、 アーキテクチャレベルでシステムの意図がわかるように、 アーキテクチャレベルでシステムの意図がわかるように、 アーキテクチャレベルでシステムの意図がわかるように、振る舞いを 振る舞いを 振る舞いを 振る舞いを 振る舞いを 振る舞いを 明らかに 明らかに 明らかに 明らかに 明らかに 明らかにすることである。 することである。 することである。 することである。 することである。 することである。 9 / 17
独立性 独立性 独立性 独立性 独立性 独立性 システムの運用 システムの運用 システムの運用 システムの運用
システムの運用 システムの運用 システムの要求する技術に対しての解決策をすぐに決定せず システムの要求する技術に対しての解決策をすぐに決定せず システムの要求する技術に対しての解決策をすぐに決定せず システムの要求する技術に対しての解決策をすぐに決定せず システムの要求する技術に対しての解決策をすぐに決定せず システムの要求する技術に対しての解決策をすぐに決定せず選択肢 選択肢 選択肢 選択肢 選択肢 選択肢 として残しておく。 として残しておく。 として残しておく。 として残しておく。 として残しておく。 として残しておく。 10 / 17
独立性 独立性 独立性 独立性 独立性 独立性 システムの開発 システムの開発 システムの開発 システムの開発
システムの開発 システムの開発 アーキテクチャは開発環境のサポートにおいて、 アーキテクチャは開発環境のサポートにおいて、 アーキテクチャは開発環境のサポートにおいて、 アーキテクチャは開発環境のサポートにおいて、 アーキテクチャは開発環境のサポートにおいて、 アーキテクチャは開発環境のサポートにおいて、非常に重要な役割 非常に重要な役割 非常に重要な役割 非常に重要な役割 非常に重要な役割 非常に重要な役割を を を を を を 果たす 果たす 果たす 果たす 果たす 果たす コンウェイの法則 コンウェイの法則 コンウェイの法則 コンウェイの法則 コンウェイの法則 コンウェイの法則 11 / 17
独立性 独立性 独立性 独立性 独立性 独立性 システムのデプロイ システムのデプロイ システムのデプロイ システムのデプロイ
システムのデプロイ システムのデプロイ 目標にすべきは 目標にすべきは 目標にすべきは 目標にすべきは 目標にすべきは 目標にすべきは即時デプロイ 即時デプロイ 即時デプロイ 即時デプロイ 即時デプロイ 即時デプロイ 適切なコンポーネント分割が重要 適切なコンポーネント分割が重要 適切なコンポーネント分割が重要 適切なコンポーネント分割が重要 適切なコンポーネント分割が重要 適切なコンポーネント分割が重要 12 / 17
独立性 独立性 独立性 独立性 独立性 独立性 選択肢を残しておく 選択肢を残しておく 選択肢を残しておく 選択肢を残しておく
選択肢を残しておく 選択肢を残しておく 前述4 つのすべてを満足させる方法は非常に難しい 前述4 つのすべてを満足させる方法は非常に難しい 前述4 つのすべてを満足させる方法は非常に難しい 前述4 つのすべてを満足させる方法は非常に難しい 前述4 つのすべてを満足させる方法は非常に難しい 前述4 つのすべてを満足させる方法は非常に難しい ただし、上手くバランスを取る方法も存在する ただし、上手くバランスを取る方法も存在する ただし、上手くバランスを取る方法も存在する ただし、上手くバランスを取る方法も存在する ただし、上手くバランスを取る方法も存在する ただし、上手くバランスを取る方法も存在する 13 / 17
独立性 独立性 独立性 独立性 独立性 独立性 重複 重複 重複 重複
重複 重複 本当の重複と偶然の重複を見極めることが重要 本当の重複と偶然の重複を見極めることが重要 本当の重複と偶然の重複を見極めることが重要 本当の重複と偶然の重複を見極めることが重要 本当の重複と偶然の重複を見極めることが重要 本当の重複と偶然の重複を見極めることが重要 14 / 17
独立性 独立性 独立性 独立性 独立性 独立性 切り離し 切り離し 切り離し 切り離し
切り離し 切り離し レイヤーの切り離し レイヤーの切り離し レイヤーの切り離し レイヤーの切り離し レイヤーの切り離し レイヤーの切り離し UI, DB, ビジネスロジックなど UI, DB, ビジネスロジックなど UI, DB, ビジネスロジックなど UI, DB, ビジネスロジックなど UI, DB, ビジネスロジックなど UI, DB, ビジネスロジックなど ユースケースの切り離し ユースケースの切り離し ユースケースの切り離し ユースケースの切り離し ユースケースの切り離し ユースケースの切り離し 使用頻度・理由など 使用頻度・理由など 使用頻度・理由など 使用頻度・理由など 使用頻度・理由など 使用頻度・理由など 切り離しレベル 切り離しレベル 切り離しレベル 切り離しレベル 切り離しレベル 切り離しレベル ソースコード、デプロイ、サービス ソースコード、デプロイ、サービス ソースコード、デプロイ、サービス ソースコード、デプロイ、サービス ソースコード、デプロイ、サービス ソースコード、デプロイ、サービス 切り離しの方式も 切り離しの方式も 切り離しの方式も 切り離しの方式も 切り離しの方式も 切り離しの方式も 選択肢を残すための技の一つ 選択肢を残すための技の一つ 選択肢を残すための技の一つ 選択肢を残すための技の一つ 選択肢を残すための技の一つ 選択肢を残すための技の一つ 15 / 17
17 章 バウンダリー : 境界線を引く 17 章 バウンダリー : 境界線を引く
17 章 バウンダリー : 境界線を引く 17 章 バウンダリー : 境界線を引く 17 章 バウンダリー : 境界線を引く 17 章 バウンダリー : 境界線を引く ソフトウェアの要素を分離し、お互いのことがわからないように制限 ソフトウェアの要素を分離し、お互いのことがわからないように制限 ソフトウェアの要素を分離し、お互いのことがわからないように制限 ソフトウェアの要素を分離し、お互いのことがわからないように制限 ソフトウェアの要素を分離し、お互いのことがわからないように制限 ソフトウェアの要素を分離し、お互いのことがわからないように制限 するというもの するというもの するというもの するというもの するというもの するというもの ビジネス要件とは関係のない決定を境界線を引くことで先延ばしに ビジネス要件とは関係のない決定を境界線を引くことで先延ばしに ビジネス要件とは関係のない決定を境界線を引くことで先延ばしに ビジネス要件とは関係のない決定を境界線を引くことで先延ばしに ビジネス要件とは関係のない決定を境界線を引くことで先延ばしに ビジネス要件とは関係のない決定を境界線を引くことで先延ばしに する する する する する する 16 / 17
17 章 バウンダリー : 境界線を引く 17 章 バウンダリー : 境界線を引く
17 章 バウンダリー : 境界線を引く 17 章 バウンダリー : 境界線を引く 17 章 バウンダリー : 境界線を引く 17 章 バウンダリー : 境界線を引く 境界線を引く 境界線を引く 境界線を引く 境界線を引く 境界線を引く 境界線を引く 境界線は 境界線は 境界線は 境界線は 境界線は 境界線は重要なもの( ビジネスルール) 重要なもの( ビジネスルール) 重要なもの( ビジネスルール) 重要なもの( ビジネスルール) 重要なもの( ビジネスルール) 重要なもの( ビジネスルール) と と と と と と重要ではないもの 重要ではないもの 重要ではないもの 重要ではないもの 重要ではないもの 重要ではないものの間に引 の間に引 の間に引 の間に引 の間に引 の間に引 く。 く。 く。 く。 く。 く。 UI がGUI でもCUI でもビジネスルールは変わらない UI がGUI でもCUI でもビジネスルールは変わらない UI がGUI でもCUI でもビジネスルールは変わらない UI がGUI でもCUI でもビジネスルールは変わらない UI がGUI でもCUI でもビジネスルールは変わらない UI がGUI でもCUI でもビジネスルールは変わらない DB がMysql でもPostgreSQL でもビジネスルールは変わらない DB がMysql でもPostgreSQL でもビジネスルールは変わらない DB がMysql でもPostgreSQL でもビジネスルールは変わらない DB がMysql でもPostgreSQL でもビジネスルールは変わらない DB がMysql でもPostgreSQL でもビジネスルールは変わらない DB がMysql でもPostgreSQL でもビジネスルールは変わらない 依存関係逆転の法則の矢印方向 依存関係逆転の法則の矢印方向 依存関係逆転の法則の矢印方向 依存関係逆転の法則の矢印方向 依存関係逆転の法則の矢印方向 依存関係逆転の法則の矢印方向 適切なコンポーネント分割が、きれいな境界線を引くことの鍵 適切なコンポーネント分割が、きれいな境界線を引くことの鍵 適切なコンポーネント分割が、きれいな境界線を引くことの鍵 適切なコンポーネント分割が、きれいな境界線を引くことの鍵 適切なコンポーネント分割が、きれいな境界線を引くことの鍵 適切なコンポーネント分割が、きれいな境界線を引くことの鍵 17 / 17