【OPEN CODE #5】コードの中身を公開します! ( https://youtrust.connpass.com/event/295556/ )で発表した内容です。
© YOUTRUST, Inc. All Rights Reserved.YOUTRUST編
View Slide
© 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.通知処理の設計について• 通知制御クラス• 通知詳細の呼び出しの条件判定など• 通知詳細クラス