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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Terai Shogo
October 02, 2023
Programming
0
220
【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
590
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
100
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.5k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
980
今日で分かる!カスタムコップの作り方
krpk1900
2
1.4k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
65
技術的負債に対してカスタムコップでできること
krpk1900
0
700
サービスを軌道に乗せるまで一人でやったすべてのこと
krpk1900
21
8k
RailsアプリでのCQSの運用を支える仕組みと文化
krpk1900
0
140
Other Decks in Programming
See All in Programming
CSC307 Lecture 04
javiergs
PRO
0
650
Fluid Templating in TYPO3 14
s2b
0
130
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
600
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
130
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
190
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
970
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
110
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
12
6.4k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
590
MUSUBIXとは
nahisaho
0
130
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Speed Design
sergeychernyshev
33
1.5k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
310
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
We Have a Design System, Now What?
morganepeng
54
8k
Deep Space Network (abreviated)
tonyrice
0
44
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
440
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
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. 実際にコードで解説!