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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kojirock5260
February 18, 2020
Technology
95
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
650
Clean_Architecture輪読会_11.pdf
kojirock5260
0
81
Clean_Architecture輪読会_1.pdf
kojirock5260
0
340
Effective_DevOps_輪読会_vol.14.pdf
kojirock5260
0
270
Effective_DevOps_輪読会_vol.11.pdf
kojirock5260
0
240
Effective_DevOps_輪読会_vol.3.pdf
kojirock5260
0
72
Effective_DevOps_輪読会_vol.7.pdf
kojirock5260
1
270
初心者にやさしいLT会1.pdf
kojirock5260
0
600
レガシー感謝の日で発表してみたかった話
kojirock5260
0
1.4k
Other Decks in Technology
See All in Technology
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
130
2026 TECHFRESH 畢業分享會 - AI-Native 重塑軟體工程與虛擬講師
line_developers_tw
PRO
0
880
非エンジニアがClaudeと挑んだ「1ヶ月間プロダクト30本ノック」
askokc
0
390
Disciplined Vibes: Scaling AI-Assisted Engineering
sheharyar
0
140
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
3
200
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
2
1.5k
RAG を使わないという選択肢
tatsutaka
1
200
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
130
EventBridge Connection
_kensh
5
700
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
210
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
1.1k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
170
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Fireside Chat
paigeccino
42
3.9k
The Limits of Empathy - UXLibs8
cassininazir
1
350
The SEO Collaboration Effect
kristinabergwall1
1
480
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Navigating Weather and Climate Data
rabernat
0
220
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Test your architecture with Archunit
thirion
1
2.3k
Site-Speed That Sticks
csswizardry
13
1.2k
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