Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【OPEN CODE】YOUTRUST サーバーサイド編

【OPEN CODE】YOUTRUST サーバーサイド編

【OPEN CODE #5】コードの中身を公開します! ( https://youtrust.connpass.com/event/295556/ )で発表した内容です。

Terai Shogo

October 02, 2023
Tweet

More Decks by Terai Shogo

Other Decks in Programming

Transcript

  1. © YOUTRUST, Inc. All Rights Reserved. 自己紹介 • 寺井 省吾

    • 2023年4月に株式会社YOUTRUSTに入社 • バックエンドとフロントエンドの両方を実装 • 最近はGitHub ActionsやRuboCopなどを使った 開発フローの効率化に興味があります • Rubyのコミュニティ活動に関心があり、 Rails GirlsのCoachやKaigi on RailsのOrganizerをしています @krpk1900_dev
  2. © YOUTRUST, Inc. All Rights Reserved. 目次 • サービスの紹介 •

    バックエンド全体の設計について • 通知処理の設計について -----------時間があれば希望に合わせて紹介----------- • モックを活用しているRSpecについて • 使用しているgemについて • ModelやControllerの数などのstatsについて
  3. © YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 問題点 •

    Fat Model、Fat Controller • 目的 • コードの見通しを良くするため • 解決策 • 参照系・更新系・通知系・それらが組み合わさったもので分 類して、配置する場所を分ける
  4. © YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 参照系 •

    Query(app/queries) • 更新系 • Command(app/commands) • 通知系 • Model(app/models/notifications) • 組み合わさったもの • UseCase(app/use_cases)
  5. © YOUTRUST, Inc. All Rights Reserved. 通知処理の設計について • YOUTRUSTでは、多くの通知処理を扱っている •

    サービス内通知(ユーザー通知) • プッシュ通知 • Slack通知 • メール通知 • 目的 • 見通しを良くしたい
  6. © YOUTRUST, Inc. All Rights Reserved. 通知処理の設計について • 通知制御クラス •

    通知詳細の呼び出しの条件判定など • 通知詳細クラス