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
200
【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
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
6
530
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
81
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.3k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
880
今日で分かる!カスタムコップの作り方
krpk1900
2
1.3k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
56
技術的負債に対してカスタムコップでできること
krpk1900
0
640
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
20
7.9k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
120
Other Decks in Programming
See All in Programming
作って理解するGOCACHEPROG / Go Conference 2025(Workshop)
mazrean
0
100
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
200
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
5k
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.2k
Devvox Belgium - Agentic AI Patterns
kdubois
1
120
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
390
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
1
350
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
190
2分台で1500examples完走!爆速CIを支える環境構築術 - Kaigi on Rails 2025
falcon8823
3
3.7k
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
170
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
1
380
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
170
Featured
See All Featured
Music & Morning Musume
bryan
46
6.8k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Balancing Empowerment & Direction
lara
4
690
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
620
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Thoughts on Productivity
jonyablonski
70
4.9k
Site-Speed That Sticks
csswizardry
12
900
Mobile First: as difficult as doing things right
swwweet
224
10k
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. 実際にコードで解説!