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
180
【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
5
450
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
40
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
970
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
690
今日で分かる!カスタムコップの作り方
krpk1900
2
1k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
37
技術的負債に対してカスタムコップでできること
krpk1900
0
540
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
20
7.8k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
80
Other Decks in Programming
See All in Programming
大LLM時代にこの先生きのこるには-ITエンジニア編
fumiyakume
7
3k
Exit 8 for SwiftUI
ojun9
0
130
エンジニアが挑む、限界までの越境
nealle
1
150
エンジニア未経験が最短で戦力になるためのTips
gokana
0
270
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
1
1.9k
Deoptimization: How YJIT Speeds Up Ruby by Slowing Down / RubyKaigi 2025
k0kubun
0
810
AWS で実現する安全な AI エージェントの作り方 〜 Bedrock Engineer の実装例を添えて 〜 / how-to-build-secure-ai-agents
gawa
8
800
アプリを起動せずにアプリを開発して品質と生産性を上げる
ishkawa
0
2.8k
5年間継続して開発した自作OSSの記録
bebeji_nappa
0
200
Memory API : Patterns, Performance et Cas d'Utilisation
josepaumard
0
130
設計の本質:コード、システム、そして組織へ / The Essence of Design: To Code, Systems, and Organizations
nrslib
3
350
Road to RubyKaigi: Making Tinny Chiptunes with Ruby
makicamel
4
120
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
69
4.7k
Fireside Chat
paigeccino
37
3.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.2k
Making Projects Easy
brettharned
116
6.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Adopting Sorbet at Scale
ufuk
76
9.3k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Building an army of robots
kneath
304
45k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
390
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. 実際にコードで解説!