Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
それ... リポジトリじゃなくね?~実案件から学ぶアンチパターン~/Learn reposit...
Search
Shunya Yamada
October 23, 2020
Programming
1
1.4k
それ... リポジトリじゃなくね?~実案件から学ぶアンチパターン~/Learn repository pattern from real projects
Shunya Yamada
October 23, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
2
650
配送計画の均等化機能を提供する取り組みについて(⽩⾦鉱業 Meetup Vol.21@六本⽊(数理最適化編))
izu_nori
0
150
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
7
1k
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
380
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
220
認証・認可の基本を学ぼう前編
kouyuume
0
190
sbt 2
xuwei_k
0
260
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
360
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
660
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
150
Cell-Based Architecture
larchanjo
0
110
AIコーディングエージェント(skywork)
kondai24
0
150
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Unsuck your backbone
ammeep
671
58k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.8k
Bash Introduction
62gerente
615
210k
Context Engineering - Making Every Token Count
addyosmani
9
490
Being A Developer After 40
akosma
91
590k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Typedesign – Prime Four
hannesfritz
42
2.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
700
Transcript
それ... リポジトリじゃなくね? ~ 件から ぶアンチパターン~ 2020/10/23
似たような発表をしたのでよければ... 前、 の をしたのでよければ 照してください。 https://www.notion.so/a71be224de42457299befa88c76c86d7
発表のきっかけ なんでこんな発 を
とある Flutter 案件 BLoC パターン + クリーンアーキテクチャ View → Bloc
→ Repository ... と Repository が ⾯ごとに 在 さらに下の で API へのリクエスト等が されている 発 のきっかけ
とある Flutter 案件 BLoC パターン + クリーンアーキテクチャ View → Bloc
→ Repository ... と Repository が ⾯ごとに 在 さらに下の で API へのリクエスト等が されている 発 のきっかけ 何かがおかしい...
とある Flutter 案件 BLoC パターン + クリーンアーキテクチャ View → Bloc
→ Repository ... と Repository が ⾯ごとに 在 さらに下の で API へのリクエスト等が されている 発 のきっかけ
とある Flutter 案件 BLoC パターン + クリーンアーキテクチャ View → Bloc
→ Repository ... と Repository が ⾯ごとに 在 さらに下の で API へのリクエスト等が されている 発 のきっかけ
とある Flutter 案件 BLoC パターン + クリーンアーキテクチャ View → Bloc
→ Repository ... と Repository が ⾯ごとに 在 さらに下の で API へのリクエスト等が されている 発 のきっかけ リポジトリが画面実装に依存?
おかしいと思った理由は? リポジトリが ⾯ に するのがなぜいけないのか
その前に.. アーキテクチャの種類について アーキテクチャには⼤きく けて2 種 あります
二種類のアーキテクチャ アーキテクチャの種 GUI アーキテクチャ システムアーキテクチャ
GUI アーキテクチャについて アーキテクチャの種 MVC 、MVP 、MVVM などが 当 システム 来の
領域( ドメイン) をUI( プレゼンテーション) から き離す。 UI が わる 界より先のことはGUI アーキテクチャは何も⽰していない Model の作り は に指 はない : i O S アプリ パターン
システムアーキテクチャについて アーキテクチャの種 クリーンアーキテクチャのようなレイヤードアーキテクチャが 当 GUI アーキテクチャが っていないドメインの領域をどのようにレイヤーで ドメイン = UI
に しない処理すべて 切り けるべきか、システム 体をどのように すべきか : i O S アプリ パターン
二種類のアーキテクチャ アーキテクチャの種 GUIアーキテクチャ MVC MVP MVVM システムアーキテクチャ クリーンアーキテクチャ
二種類のアーキテクチャ アーキテクチャの種 GUIアーキテクチャ MVC MVP MVVM システムアーキテクチャ クリーンアーキテクチャ リポジトリ
リポジトリはシステムアーキテクチャの領域 よって画面実装に依存すべきではない! と個 的には思っています
実装例 そんなにコードはありません
こんな感じのアプリを想定 API から何かの 事を⼀ で ⽰、 索を⾏う ⼀ ⾯と 索
⾯の2 ⾯ ⼀ ⾯では ての 事を 順で 得 索 ⾯では任 のキーワードで 事を 索 例
こんな感じのアプリを想定 例 UI の処理について える ビジネスロジックは API をコールして「 事 得」「
事 索」を⾏う
まずは良くない例 のプロダクションコードはこんな じでした
まずは良くない例 例
まずは良くない例 例
まずは良くない例 例
良い例 ⾯ に しない例
良い例 例
良い例 例
良い例のメリットなど 例 「 事」に する処理を⼀箇 まとめることができる ⾯ に しないので ⾯が
えてもリポジトリは えない ⾯で再利⽤できる 処理が えてきてリポジトリが⼤きくなってきたら、さらに けられないか⾒ し
まとめ まとめ アーキテクチャは「GUI アーキテクチャ」「システムアーキテクチャ」の2 種 システムアーキテクチャは ⾯に はない リポジトリはシステムアーキテクチャの領域 リポジトリは
⾯ごとにではなく、 単 で作った がいい じになる 上となります