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
CleanArchitecture_31章_32章.pdf
Search
ssknnm
December 16, 2020
0
80
CleanArchitecture_31章_32章.pdf
ssknnm
December 16, 2020
Tweet
Share
More Decks by ssknnm
See All by ssknnm
CleanArchitecture23章&24章
ssknnm
0
260
CleanArchitecture17章&18章
ssknnm
0
210
CleanArchitecture第5章&第6章
ssknnm
0
94
Featured
See All Featured
Visualization
eitanlees
146
16k
Embracing the Ebb and Flow
colly
86
4.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
GitHub's CSS Performance
jonrohan
1031
460k
Building an army of robots
kneath
306
45k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Transcript
CleanArchitecture 31章&32章 YOURMYSTAR 佐々木
31章 ウェブは詳細 導入 ウェブはこの業界で60年大からずっと続く「振り子」の延長線上にある。振り子の状態は、全ての計算 パワーを中央サーバーにまとめるか、全ての計算パワーを端末に分散させるかを行ったり来たりして いる。 全てのパワーをサーバー側にまとめていてブラウザ側では 何もしていない。 しかしそのうち、ブラウザで実行する 巨大なアプリケーションを書くまでになった。
止まらない振り子 ウェブの歴史:計算機室とパンチカード →緑色の画面→ミニコン、、、、 計算能力がどこに必要になるかを見つけ出さず、 集中と分散の間を行ったり来たりしている アーキテクトとしては長期的な視点で考える。振り子の運動は短期的な問題。 伝えたいこと→ビジネスルールをGUIから切り離す
結論 ウェブ=GUI=詳細、ウェブは入出力デバイスの一種 である。 詳細をビジネスロジックの中心から切り離しておきたい。 UIとアプリケーションの間には教会があり、 抽象化できる。 完成した入力データや結果となる出力データを何らかのデータ構造に格納すれば、ユースケースを実 行するプロセスの入力値及び出力値として利用できる。
まとめ 画面からビジネスロジックを切り離して、画面は使いやすさなどを追求したほうがいいんだと思う。
フレームワークは詳細 フレームワークはアーキテクチャではない。 なかにはそうであろうとしているものもあるが、それでもやはりアーキテクチャではない。
フレームワークの作者たち フレームワークの作者はあなたが何に困っているのか知らない。フレームワークの作者が知っている のは作者自身、同僚、友人が抱える問題のみであり、 彼らの問題を解決するためにフレームワークを 作っている。 あなたが抱える問題と作者たちの抱える問題が重なることはある。 重なる部分がそれなりにあるのならフレームワークは便利なものだ!
一方的な結婚 フレームワークの作者と我々の関係は極めて不釣り合いである。 作者は我々に対して何の義務も負う必要がない。 すべてのリスクと負担を背負うのは我々である。(一方的な結婚) しかしフレームワークの作者は、 FWと我々の作るアプリ、FWと我々自身の強い結合を望んでいる。
リスク • 依存性のルールに違反する傾向がある。円の最も内側に FWを結合させたがっている。イチゴ 入り込んでしまえば外すことができない。 • プロダクトが成長するにつれて FWの提供する機能では手に負えなくなってくる。 • FWが進化する方向があなたの望む道から外れてしまうかもしれない。なんの利益にもならない
バージョンアップ、使っていた機能の廃止、仕様変更。 • 優れたFWに出会った時に乗り換えたくなるかも・・・・
解決策 結論:FWとは一定の距離を保つこと(アーキテクチャの縁の外側にあるものとして扱う) FWはプラグインとして使う。コアのコードにはまぜず、 FWはコンポーネントにまとめて、コアのコードに プラグインする。 Spring ビジネスオブジェクト全体に@ Autowired→NG Main(最下位コンポーネント)に@ Autowired→OK
今あなたたちを夫婦として宣言する どう考えてもFWと結合しなければならない時はある。 C++ →STL,Java→標準ライブラリ そのアプリケーションはFWに縛られることになるのファと認識しておく必要がある。
まとめ FWに出会ったらアーキテクチャの境界から可能な限り遠ざけるようにしよう。
感想 31章 確かにGUIとビジネスルールは切り離して考えるべきだとは思う。ビジネスルールと実際に使うユー ザーは関係ないのだから。 32章 FWに依存しすぎるなという意味かなと思った。しかし使いやすい FWだと、それありきで考える方向に どうしてもなるため(私は)アーキテクチャと分離しろという言葉は耳が痛かった。