$30 off During Our Annual Pro Sale. View Details »
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
210
【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
540
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
87
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.4k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
940
今日で分かる!カスタムコップの作り方
krpk1900
2
1.3k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
59
技術的負債に対してカスタムコップでできること
krpk1900
0
670
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
21
8k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
130
Other Decks in Programming
See All in Programming
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
2
590
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
200
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
630
dotfiles 式年遷宮 令和最新版
masawada
1
760
Developing static sites with Ruby
okuramasafumi
0
270
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
150
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
790
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
500
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
380
エディターってAIで操作できるんだぜ
kis9a
0
710
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
170
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
390
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Making Projects Easy
brettharned
120
6.5k
Optimizing for Happiness
mojombo
379
70k
Speed Design
sergeychernyshev
33
1.4k
Done Done
chrislema
186
16k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
Producing Creativity
orderedlist
PRO
348
40k
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. 実際にコードで解説!