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
それ... リポジトリじゃなくね?~実案件から学ぶアンチパターン~/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
開発に寄りそう自動テストの実現
goyoki
2
1.6k
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
170
gunshi
kazupon
1
130
AtCoder Conference 2025
shindannin
0
840
Patterns of Patterns
denyspoltorak
0
400
Python札幌 LT資料
t3tra
7
1.1k
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
150
AIエージェントの設計で注意するべきポイント6選
har1101
6
2.8k
認証・認可の基本を学ぼう後編
kouyuume
0
260
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
130
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
330
ゲームの物理 剛体編
fadis
0
390
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
The browser strikes back
jonoalderson
0
240
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
31
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
180
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
It's Worth the Effort
3n
187
29k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Building an army of robots
kneath
306
46k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
51k
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 種 システムアーキテクチャは ⾯に はない リポジトリはシステムアーキテクチャの領域 リポジトリは
⾯ごとにではなく、 単 で作った がいい じになる 上となります