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
CleanArchitecture17章&18章
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ssknnm
October 28, 2020
Business
240
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
110
CleanArchitecture23章&24章
ssknnm
0
290
CleanArchitecture第5章&第6章
ssknnm
0
120
Other Decks in Business
See All in Business
SmartHRの全社AI推進は、どう始まったか
yoshikikonishi_
3
3.1k
データ問い合わせエージェントと 求人推薦システムから見る、 当社のデータ活用事例
kazuyama88
0
180
コーポレートストーリー(新規投資家様向け会社説明資料)
gatechnologies
2
21k
Trend Cloud OneからTrendAI Vision Oneへの切替 - 事前に押さえたい疑問とつまずきやすいポイント
todatomohiro
0
220
AI立国論(2026年9月)
noritaka88tax
0
220
新卒採用向け説明資料
kazumakitao
PRO
1
4.1k
ビーヘルシー採用
behealthy
0
260
向山純平 メニュー表 / Junpei Mukouyama – Professional Services
mj6237
3
330
コンテキストをデータとして扱うDynatraceのAIアーキテクチャ
sukatsu1222
1
160
KEELLプロダクト紹介資料_202610
shunsuke_takeuchi
PRO
0
170
プロダクトオーナーを「忙しい」から解き放つ!委任を促す言葉
kawanotron
0
280
Dopagaki Driven Design
pokotyamu
0
180
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
970
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Evolving SEO for Evolving Search Engines
ryanjones
0
330
The Curse of the Amulet
leimatthew05
3
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Faster Mobile Websites
deanohume
310
32k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
How to Talk to Developers About Accessibility
jct
2
580
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Marketing to machines
jonoalderson
1
5.9k
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….
サービス 一般的にコマンドラインや同等のシステムコールで開始されるプロセスのこと。 ローカルプロセスと同じルールが適用される。下位レベルのサービスは上位レベルの サービスにプラグインされるべきである。
まとめ 下位レベルのプロセスを上位レベルのプロセスのプラグインにすることが目的である。 システムの境界を意識して開発をしたことがないので正直ピンとこなかった