watnow / 代表
遅刻リンピックのリリースに向けたチーム開発においてバックエンドを担当
概要:echo/Golangにリプレイスし,DBはユーザーやイベント,グループの管理と,各ユーザーの到着予定時刻を比較するセグメントとしてNoSQLでドキュメント指向であるMongoDBを採用した.また,今までの開発との仕様変更としてグループ機能を実装することにした.これにより,ユーザーそれぞれが異なるグループを作成し,そのグループ内での記録を見ることができるようになる. 以前の課題点と改善策,結果:個人開発①で上がった課題点としてRDBを用いたことによって中間テーブルが多くなってしまい,設計として見にくく,fetchする時間もかなりかかってしまっていた.また,遅刻順位が入れ替わるリアルタイム性の実現に関して,高速で順位関係をソートしてフロント側に返すことでより機能として磨きがかかると考えた.このような考えからDBをMongoDBに変更することでイベント情報を配列としてcollectionに格納することができるようになり,また,echo/Golangを採用することでゴルーチンを使って平行処理をすることで,ランキングに関して表示させるのにかかる時間が大幅に短くなった. 意識したこと:グループ機能を実装するにあたって,要件設計,画面設計で考えないといけない部分が多かったため,チーム内で定例MTGで共有するだけでなく,Notion内で案を立てて,機能要件の把握に齟齬が出ないようにまとめた.