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
【OPEN CODE】YOUTRUST サーバーサイド編
Search
Terai Shogo
October 02, 2023
Programming
0
170
【OPEN CODE】YOUTRUST サーバーサイド編
【OPEN CODE #5】コードの中身を公開します! (
https://youtrust.connpass.com/event/295556/
)で発表した内容です。
Terai Shogo
October 02, 2023
Tweet
Share
More Decks by Terai Shogo
See All by Terai Shogo
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
21
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
770
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
550
今日で分かる!カスタムコップの作り方
krpk1900
2
860
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
28
技術的負債に対してカスタムコップでできること
krpk1900
0
510
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
20
7.7k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
67
Kaigi on Rails 2023 〜運営の裏側〜
krpk1900
0
950
Other Decks in Programming
See All in Programming
shadcn/uiを使ってReactでの開発を加速させよう!
lef237
0
300
サーバーゆる勉強会 DBMS の仕組み編
kj455
1
300
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
390
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
0
110
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
250
最近のVS Codeで気になるニュース 2025/01
74th
1
110
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
190
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
1.2k
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
130
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
情報漏洩させないための設計
kubotak
5
1.3k
Fibonacci Function Gallery - Part 2
philipschwarz
PRO
0
210
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
The Language of Interfaces
destraynor
155
24k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Optimising Largest Contentful Paint
csswizardry
33
3k
How GitHub (no longer) Works
holman
312
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
A Tale of Four Properties
chriscoyier
157
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
It's Worth the Effort
3n
183
28k
Transcript
© YOUTRUST, Inc. All Rights Reserved. YOUTRUST編
© YOUTRUST, Inc. All Rights Reserved. 自己紹介 • 寺井 省吾
• 2023年4月に株式会社YOUTRUSTに入社 • バックエンドとフロントエンドの両方を実装 • 最近はGitHub ActionsやRuboCopなどを使った 開発フローの効率化に興味があります • Rubyのコミュニティ活動に関心があり、 Rails GirlsのCoachやKaigi on RailsのOrganizerをしています @krpk1900_dev
© YOUTRUST, Inc. All Rights Reserved. 目次 • サービスの紹介 •
バックエンド全体の設計について • 通知処理の設計について -----------時間があれば希望に合わせて紹介----------- • モックを活用しているRSpecについて • 使用しているgemについて • ModelやControllerの数などのstatsについて
© YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 問題点 •
Fat Model、Fat Controller • 目的 • コードの見通しを良くするため • 解決策 • 参照系・更新系・通知系・それらが組み合わさったもので分 類して、配置する場所を分ける
© YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 参照系 •
Query(app/queries) • 更新系 • Command(app/commands) • 通知系 • Model(app/models/notifications) • 組み合わさったもの • UseCase(app/use_cases)
© YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 参照系のアクション(index)の場合
© YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 更新系のアクション(create, update,
destroy)の場合
© YOUTRUST, Inc. All Rights Reserved. 実際にコードで解説!
© YOUTRUST, Inc. All Rights Reserved. 通知処理の設計について • YOUTRUSTでは、多くの通知処理を扱っている •
サービス内通知(ユーザー通知) • プッシュ通知 • Slack通知 • メール通知 • 目的 • 見通しを良くしたい
© YOUTRUST, Inc. All Rights Reserved. 通知処理の設計について • 通知制御クラス •
通知詳細の呼び出しの条件判定など • 通知詳細クラス
© YOUTRUST, Inc. All Rights Reserved. 実際にコードで解説!