Slide 1

Slide 1 text

© YOUTRUST, Inc. All Rights Reserved. YOUTRUST編

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

© YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 参照系 • Query(app/queries) • 更新系 • Command(app/commands) • 通知系 • Model(app/models/notifications) • 組み合わさったもの • UseCase(app/use_cases)

Slide 6

Slide 6 text

© YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 参照系のアクション(index)の場合

Slide 7

Slide 7 text

© YOUTRUST, Inc. All Rights Reserved. バックエンドの全体的な設計について • 更新系のアクション(create, update, destroy)の場合

Slide 8

Slide 8 text

© YOUTRUST, Inc. All Rights Reserved. 実際にコードで解説!

Slide 9

Slide 9 text

© YOUTRUST, Inc. All Rights Reserved. 通知処理の設計について • YOUTRUSTでは、多くの通知処理を扱っている • サービス内通知(ユーザー通知) • プッシュ通知 • Slack通知 • メール通知 • 目的 • 見通しを良くしたい

Slide 10

Slide 10 text

© YOUTRUST, Inc. All Rights Reserved. 通知処理の設計について • 通知制御クラス • 通知詳細の呼び出しの条件判定など • 通知詳細クラス

Slide 11

Slide 11 text

© YOUTRUST, Inc. All Rights Reserved. 実際にコードで解説!