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
CleanArchitecture17章&18章
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ssknnm
October 28, 2020
Business
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CleanArchitecture17章&18章
CleanArchitectureの17章と18章です
ssknnm
October 28, 2020
More Decks by ssknnm
See All by ssknnm
CleanArchitecture_31章_32章.pdf
ssknnm
0
100
CleanArchitecture23章&24章
ssknnm
0
290
CleanArchitecture第5章&第6章
ssknnm
0
110
Other Decks in Business
See All in Business
こだわりを手放したことで気づけたスクラムマスターとしての振る舞い
kawanotron
1
690
「受託脳」から「提案脳」へ〜「一緒に悩んで、いいものつくる」を目指して
kuranuki
3
2.2k
Forma紹介資料
takuyasaeki
0
230
BETA株式会社 会社紹介資料(新卒採用/28卒)
betarecruit
0
120
<DevLOVE関西>関係性が育つ前にフィードバックを届ける ~関係性が育つのを待てないとき、どう渡すのか~
emi0726
4
270
作れる人から、伸ばせる人へ~Anthropicの5アーキタイプで読み解く、成長率日本一の開発組織~ / Builder to Grower
hirokiyamamoto14
PRO
2
740
2026_1H_TransparencyReport_EN.pdf
mercari_inc
0
450
会社紹介資料/Idein株式会社
ideininc
0
940
株式会社SAFELY 会社紹介 / Company
safely_pr
1
8.1k
株式会社ジオコード 会社紹介・採用説明資料
geocode0214
0
110
Global Vascular株式会社_会社紹介資料
globalvascular
0
280
松岡会計事務所・合同説明会
wf714201
0
160
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Marketing to machines
jonoalderson
1
5.7k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
500
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Utilizing Notion as your number one productivity tool
mfonobong
4
560
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
670
Six Lessons from altMBA
skipperchong
29
4.5k
It's Worth the Effort
3n
188
29k
Transcript
CleanArchitecture 17章&18章 Sasaki
17章 バウンダリー:境界線を引く ソフトウェアの要素を分離し、お互いのことがわからないように制限する →依存関係がない方がよいって意味だと解釈した メリット・目的:システム構築・維持の人件費を最小限に抑えることができる 人々のパワーを奪うもの:結合・・・それも早すぎる決定との結合
失敗例 p社 オブジェクトのインスタンスを分ける、サーバの台数の意思決定早すぎた。 →開発の労力がすごくかかった w社 SOAを視野に入れたツールを導入するのが早すぎた →伝播の遅延・キューの待ち時間ができた・いちいちサービスを立ち上げないといけない
成功例 FitNesse データはスタブ→必要になったら本物のDBに接続 ビジネスツールとデータベースの間に境界線を引いたことでDBの洗濯を1年以上遅らせ ることができた。DBを使っていない間厄介な問題(スキーマ、クエリ、パスワードなど)に 18ヶ月も直面することがなく開発を進めることができた。
成功から学ぶ 「重要なもの」と「重要でないもの」を分ける 重要…ビジネルスール 重要ではない…GUIツール(入出力はビジネスルールに直接関係ない)、DB(データの もビジネスルールと直接関係ない、スタブを使えばいい)
プラグインアーキテクチャ プラグインいよってスケーラブルで保守可能なシステムアーキテクチャを確立することが できる! UI・SOAなどをプラグインとして扱うことで様々な技術に置き換え可能 →プラグイン構造を前提に着手することで変更に強いシステムになる そのためには境界線をきちっと引くことが大事である →単一責任の原則が教えてくれる
17章の結論 システムのビジネス要件と関係のないところ(db、フレームワーク、DI)の意思決定は遅く てもいい。 コアのビジネスに関係しないところはプラグインにしておく。
18章 境界線の解剖学 ソフトウェアコンポーネント間の境界を超える通信はいろいろな形のものがある。 • ソースコード • 恐怖のモノリス • デプロイコンポーネント • スレッド
• ローカルプロセス • サービス
ソースコード ソースコードのモジュールを変更すると他のソースコードのモジュールも変更や再コンパ イルをするなどして、デプロイし直す必要があるかもしれないからだ。
恐怖のモノリス .jarや.exeなどの内部的な話?だと解釈した(正直よくわかってない) 下位レベルのクラス→上位レベルのクラス 実行時の依存性とコンパイル時の依存性の両方で同じ方向を向くため
デプロイコンポーネント 動的リンクライブラリのこと
スレッド 実行のスケジュールや順序を整理する方法
ローカルプロセス 上位コンポーネントの一種 ローカルプロセスの境界を超える通信:OSのシステムコール、データのマーシャルとアン マーシャr、プロセス間のコンテキストスイッチetc….
サービス 一般的にコマンドラインや同等のシステムコールで開始されるプロセスのこと。 ローカルプロセスと同じルールが適用される。下位レベルのサービスは上位レベルの サービスにプラグインされるべきである。
まとめ 下位レベルのプロセスを上位レベルのプロセスのプラグインにすることが目的である。 システムの境界を意識して開発をしたことがないので正直ピンとこなかった