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
140
【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
14
技術的負債に対してカスタムコップでできること
krpk1900
0
440
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
19
7.6k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
45
Kaigi on Rails 2023 〜運営の裏側〜
krpk1900
0
880
Fat Modelを解消するためのCQRSアーキテクチャ
krpk1900
6
8.2k
Rubyのハッシュとパスワードのハッシュ化、まったく別物だと思っていませんか?
krpk1900
0
36
【iCARE秘伝のアプリを初公開】GJ Carelyであなたの会社にも温かい文化を作ってみませんか?
krpk1900
0
30
What is ECS, EKS, EC2 and Fargate?
krpk1900
0
130
Other Decks in Programming
See All in Programming
Amebaチョイス立ち上げの裏側 ~依存システムとの闘い~
daichi_igarashi
0
230
Kotlin 2.0 and Beyond
antonarhipov
2
150
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
220
1人で挑むSwiftコンパイラ 〜型システム入門編〜
s_shimotori
0
340
LangChainでWebサイトの内容取得やGitHubソースコード取得
shukob
0
150
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
190
実践!難読化ガイド
mitchan
0
120
LangChainの現在とv0.3にむけて
os1ma
4
840
月間4.5億回再生を超える大規模サービス TVer iOSアプリのリアーキテクチャ戦略 - iOSDC2024
techtver
PRO
1
790
Lessons by WebAssembly app in production on CDN Edge Computing Service
tetsuharuohzeki
0
170
ブラウザ互換の重要性 - あらゆるユーザーに価値を届けるために必要なこと
yamanoku
0
110
Some more adventure of Happy Eyeballs
coe401_
2
180
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Done Done
chrislema
180
16k
The Illustrated Children's Guide to Kubernetes
chrisshort
47
48k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.6k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
A designer walks into a library…
pauljervisheath
201
24k
BBQ
matthewcrist
83
9.1k
Speed Design
sergeychernyshev
22
420
Practical Orchestrator
shlominoach
185
10k
Designing Experiences People Love
moore
138
23k
Building Applications with DynamoDB
mza
90
6k
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. 実際にコードで解説!