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
230
【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
7
600
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
110
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.5k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
1k
今日で分かる!カスタムコップの作り方
krpk1900
2
1.4k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
69
技術的負債に対してカスタムコップでできること
krpk1900
0
720
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
21
8k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
150
Other Decks in Programming
See All in Programming
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
300
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
490
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
140
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
290
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜
kuro_kurorrr
3
1.9k
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
200
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
950
Claude Codeログ基盤の構築
giginet
PRO
7
3.3k
[SF Ruby Feb'26] The Silicon Heel
palkan
0
100
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
110
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
160
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
210
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Building an army of robots
kneath
306
46k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
Odyssey Design
rkendrick25
PRO
2
550
Side Projects
sachag
455
43k
The browser strikes back
jonoalderson
0
790
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Color Theory Basics | Prateek | Gurzu
gurzu
0
250
What does AI have to do with Human Rights?
axbom
PRO
1
2k
HDC tutorial
michielstock
1
540
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. 実際にコードで解説!