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
150
【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
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
16
技術的負債に対してカスタムコップでできること
krpk1900
0
440
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
19
7.6k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
49
Kaigi on Rails 2023 〜運営の裏側〜
krpk1900
0
890
Fat Modelを解消するためのCQRSアーキテクチャ
krpk1900
6
8.5k
Rubyのハッシュとパスワードのハッシュ化、まったく別物だと思っていませんか?
krpk1900
0
39
【iCARE秘伝のアプリを初公開】GJ Carelyであなたの会社にも温かい文化を作ってみませんか?
krpk1900
0
31
What is ECS, EKS, EC2 and Fargate?
krpk1900
0
130
Other Decks in Programming
See All in Programming
Micro Frontends for Java Microservices - dev2next 2024
mraible
PRO
0
200
CDKを活用した 大規模コンテナ移行 プロジェクトの紹介
yoyoyopg
0
300
DjangoNinjaで高速なAPI開発を実現する
masaya00
0
500
Cancel Next.js Page Navigation: Full Throttle
ypresto
1
170
型付きで行うVSCode拡張機能開発 / VSCode Meetup #31
mazrean
0
240
CSC509 Lecture 01
javiergs
PRO
1
210
XP2024 っていう国際会議に行ってきたよの記
bonotake
4
220
タイミーにおけるデータの利用シーンと データ基盤の挑戦
marufeuille
4
3.2k
What is TDD?
urakawa_jinsei
1
220
[KR] Server Driven Compose With Firebase
skydoves
2
190
個人開発で使ってるやつを紹介する回
yohfee
1
700
Progressive Web Apps for Rails developers
siaw23
2
540
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9k
How to train your dragon (web standard)
notwaldorf
87
5.6k
In The Pink: A Labor of Love
frogandcode
139
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Automating Front-end Workflow
addyosmani
1365
200k
Building Better People: How to give real-time feedback that sticks.
wjessup
362
19k
The Cost Of JavaScript in 2023
addyosmani
43
5.8k
Practical Orchestrator
shlominoach
186
10k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.7k
A better future with KSS
kneath
237
17k
Teambox: Starting and Learning
jrom
131
8.7k
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. 実際にコードで解説!