こんにちは!YOUTRUSTのしぶあつです。
2023年も残すところ僅か…!!!
そんな12月12日(水)にOPEN CODEを開催いたしましたので今回もレポートをお届けいたします✨✨
OPEN CODEって何?
エンジニアのみなさん、他社のプロダクトの実際のコードが気になりませんか? 弊社エンジニアはとっても気になっています。他社のコードが見たい! けど、見せてとは言いづらい。 ということで、まずは自分たちから公開していこう!という試みです。
過去開催レポートはこちら!
コード公開
参加人数は少なめでしたが、年末のお忙しい中お集まりいただいたゲストの皆さんとまずは乾杯🍻
2023年最後を締めくくる今回のOPEN CODEは創業エンジニアであるやまでぃ さんによるコード公開と解説になります。
創業エンジニアである、やまでぃさんからは創業時のコードから直近のコードへの進化の歴史も踏まえた上での解説がなされていきます。 参加者の方々も頷き、時に質問を投げかけていただきながら、インタラクティブに会が進んでいきます。
質問にお答えする中で、利用しているgemの紹介や現在のアーキテクチャの採用理由といった話も交えることで、 コード以外の情報も積極的に公開させていただきます🙌(これぞOPEN CODEの醍醐味です!)
参加者の方からの質問を全公開です!たくさんの質問ありがとうございました✨
・創業してからいつ頃に、現在のアーキテクチャに採用されたのですか? ・利用しているgemの紹介 ・JSONシリアライザは何を採用している? ・Active Recordを扱うときは、全てクエリに切り出している? (参照系のロジックを担うクエリ層の話を踏まえて) ・コメントを扱う際のルールはありますか? レビューの際に、「そのコメント必要?」「ここコメント加えてほしい」のようなコミュニケーションが発生している? ・UseCaseからUseCaseを呼び出すことはない?ファットなUseCaseは存在する? (更新系のロジックを呼び出す層であるUseCase層の話を踏まえて) ・UseCaseのテストでは、正しくCommandを呼び出せていることだけを確認しているとあるが、 DB上正しくデータが更新されていることはどこでテストしている? ・現在のアーキテクチャでは、例えばModelに変更を加えた場合に、影響範囲はすぐわかる? ・Modelで定義するメソッド名にはルールはある? ・なぜUseCaseをperformに統一しようとしたのか? UseCaseはCommandとは別でperformでもそれはそれで良いのではないか? ・UseCaseのネームスペースはネストしているか? ・Commandで複数Modelを更新することはあるか? その場合、UseCaseとの区別はどうしているのか? ・RailsのCallbackでやるような処理はどこでやっているのか? ・同じような処理を行うCommandが生まれることはないのか? ・YOUTRUSTのアーキテクチャを採用する場合、どのようなタイミングで採用するのが適切でしょうか? ベストプラクティスなどあれば知りたいです。
懇親会
懇親会ではコード公開の時に説明しきれなかった部分や補足の説明のため、ホワイトボードを引っ張り出して解説再開していました(笑)
参加いただいた皆さんからは、「こんなにコードを公開するなんて思っていなくてびっくりしました!」「サーバーサイド編以外のOPEN CODEも参加してみたい!」といったコメントをいただき、とても嬉しい気持ちです
終わりに
ここまでレポートをご覧いただきありがとうございます✨✨
今後もYOUTRUSTではコミュニティ貢献に寄与すべく、イベントの企画運営はもちろん、カンファレンスへのスポンサードも継続して参ります。
ぜひこれを機会にYOUTRUSTのconnpassページ メンバーになってください!
現在月一ペースにて何かしらのイベント実施中です!
他企業さんとのコラボイベントなども積極的に実施したいと考えておりますので、OPEN CODEでのコラボももちろんのこと、YOUTRUSTのengineer'sへのイベント登壇依頼もお受け致しております。ぜひ一緒に業界盛り上げていきましょう!
また、YOUTRUSTはエンジニア採用を積極的に進めております!ぜひご覧ください!
それでは今日はこのへんで。