こんにちは! プロダクトチームの採用を担当しております、大桃(YOUTRUST)です。
先日6/12(水)にOPEN CODEを開催いたしましたので、レポートをお届けしようと思います💻
しかも今回のOPEN CODEは特別編!
5日連続で開催したYOUTRUST Meetupの3日目の企画として、オンラインとオフラインのハイブリット開催でした。
OPEN CODEとは?
エンジニアのみなさん、他社のプロダクトの実際のコードが気になりませんか? 弊社エンジニアはとっても気になっています。他社のコードが見たい! けど、見せてとは言いづらい。 ということで、まずは自分たちから公開していこう!という試みです。
過去開催レポートはこちら!
コード公開
キャリアSNS「YOUTRUST」のバックエンドのコードをオープンにしていきます。
YOUTRUSTのバックエンドはRuby on Railsで書かれており、今回はWeb APIのコードについてやまでぃさんが解説をしていきます。
まずはスライドを使って、APIの種類と大きな構成についてご紹介していきます。その後、実際のコードを画面に映しながら、例を交えて丁寧に解説をしていきます。
運用が長くなるにつれてファットになっていくコードについて、どのような観点に着目して、どのように責務毎にファイルを分割してクラスを記述しているかについてまで、かなり詳細に説明をするやまでぃさん。
皆さん時折メモをとりながら、真剣に解説を聞いていました。
また、今回はやまでぃさんが日々開発を進めているLLMを用いたコードジェネレーターのデモを行いました!
Webアプリケーションとして開発されており、生成したいクラスの仕様を自然言語で記述しプロンプトとしてLLMに与えると、対象のクラスと対応するテストコードが自動で生成されるというものです。
生成されたコードはそのままブラウザ上で編集することができ、問題がなければそのまま実際にコードをローカルのファイルシステムに保存してテストを実行してくれます。
皆さまからは「すごい!」「欲しい!」というお声が届いておりました!
所々で「質問はありませんか?」とやまでぃさんからの問いかけに、活発に質問をいただきました!ありがとうございました!
・APIで返す各リソースのIDをUUIDではなく暗号化IDにした背景はありますか? ・バージョンアップなどはどのようにされていますか? ・QueryRunnableでクラスメソッドのrunを定義しているのはなぜですか? ・パフォーマンスチューニングなどはやられていますか? ・初回ロード時に多くのデータのやり取りが発生して、重くて遅延が発生しそうだと思いましたが、今後の課題として認識されているのでしょうか? ・どのくらいの頻度でつながり申請を送ったらBot判定になりますか? ・use_case, command, query, model, controller のディレクトリ構成で気をつけていること、ルール等があれば知りたいです! ・友達申請のexpired_atの「とりあえず1ヶ月」はとりあえずしてからどのぐらい経ちましたか? ・APIはSwaggerなどで管理していますか?自動生成などはされていますか? ・BEのテストコードの考え方などを聞きたいです! ・設計段階でデータモデリングやドメインモデリングなどは行っていますか? ・FriendRequestの’extra’には何が入るのでしょうか? ・今のアーキテクチャは、プロダクトが大きくなってからこの構成に変えようとなりましたか?その場合、どういう進め方で移行していったのか気になります! ・コードジェネレーターは今後本番運用していくんでしょうか?それともまだ決まっておらずやまでぃさんの趣味&研究でしょうか? ・コードジェネレーターでテストコードを生成させるための工夫はありますか? ・フロントエンドのコードを公開する機会もありますか?見たいです
OPEN CODE後
オフラインで参加いただいた方々と懇親会を実施いたしました!
盛り上がりに盛り上がりすぎて、お写真を撮るのを忘れてしまいました!!!(ごめんなさい)
テキストでお伝えすると、登壇者のやまでぃさんだけではなく、YOUTRUSTのエンジニアも参加し、今日のOPEN CODEに関する内容はもちろんのこと、ホワイトボードを使いながらさらに詳しい構成の話をしたり、情報交換の場として様々な話がなされていました。
また、アンケートには
「他社さんのコードを見れる機会はなかなかないので、とても楽しかったです!」
「ちょうど沢山考えていたコードについての話が聞けたので良かった」
など、たくさんの感想をいただきました。
終わりに
ここまでレポートをご覧いただきありがとうございます。
よろしければYOUTRUSTのカンパニーページをフォローお願いします!
また、YOUTRUSTはエンジニア採用を積極的に進めておりますので、少しでもご興味を持っていただいたり、話を聞いてみたい!という方は、YOUTRUSTよりカジュアル面談でお話しさせていただければ嬉しいです。