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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Terai Shogo
October 02, 2023
Programming
240
0
Share
【OPEN CODE】YOUTRUST サーバーサイド編
【OPEN CODE #5】コードの中身を公開します! (
https://youtrust.connpass.com/event/295556/
)で発表した内容です。
Terai Shogo
October 02, 2023
More Decks by Terai Shogo
See All by Terai Shogo
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
7
600
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
120
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.6k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
1k
今日で分かる!カスタムコップの作り方
krpk1900
2
1.5k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
72
技術的負債に対してカスタムコップでできること
krpk1900
0
740
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
21
8k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
150
Other Decks in Programming
See All in Programming
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
330
iOS機能開発のAI環境と起きた変化
ryunakayama
0
180
アーキテクチャモダナイゼーションとは何か
nwiizo
17
5.1k
実践CRDT
tamadeveloper
0
560
ハンズオンで学ぶクラウドネイティブ
tatsukiminami
0
130
おれのAgentic Coding 2026/03
tsukasagr
1
150
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
780
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
190
t *testing.T は どこからやってくるの?
otakakot
1
610
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
22
13k
Swift Concurrency Type System
inamiy
0
530
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
220
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
520
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
680
Being A Developer After 40
akosma
91
590k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
270
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
140
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
94
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
770
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
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. 実際にコードで解説!