# プロジェクト概要
[minne](https://minne.com/) というハンドメイド作品を売買できるwebサービスにおいて、キーワード検索の精度を上げ、ユーザーニーズに合った作品が検索結果の上位に表示されるようにするために、サイト内検索のサービスを提供している会社に、検索結果を出力するために必要なデータを逐一APIリクエストで送信し、返ってきたレスポンスを元に検索結果に反映させるというプロジェクトに参画しました。検索結果に常に最新の情報を反映させること、コストを最低限に抑えること、相手先のAPI仕様に合わせてデータを送信することを満たした設計で実装する必要がありました。
# サービス概要
- 規模感:上述したプロジェクト1と同じです。
- チーム構成:5人(Webアプリケーションエンジニア4人、プロダクトオーナー1人)
- 技術スタック:上述したプロジェクト1と同じです。
# 担当業務
AWS, GCP, Redis, Ruby on Rails を中心に、チームでの設計・実装・テストを担当しました。
# 工夫した点
- これまでサーバーサイドを中心に既存機能の改修や新機能開発を行ってきた中、今回のプロジェクトでは、AWS, GCP, Redis など経験の無い技術を多く使うことになりました。そのため、実装フェーズに入る前に、設計で不明点があれば調べて無くすようにしたり、書籍を読んで体系的な知識をインプットしたり、Cloud Pub/SubやAWS lambdaなど使う予定の技術を実際に触ってキャッチアップしたりしていました。
- 学んだことのうち、実装で使うことになりそうな知識は、こまめにScrapboxにアウトプットしていました。
- [Pub/SubのpublishをトリガーにGCFを起動させるチュートリアルのメモ](https://scrapbox.io/output5000/Pub%2FSub%E3%81%AEpublish%E3%82%92%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%81%ABGCF%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%95%E3%81%9B%E3%82%8B%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E3%81%AE%E3%83%A1%E3%83%A2)
- [lambda](https://scrapbox.io/output5000/lambda)
# 取り組みの成果
これにより、実装フェーズに入ってからの手戻りを最小限に抑えることができました。また、調査や事前学習の過程で得た知識をチーム内で共有することで、他のメンバーが同様の技術を使用する際の参考資料を提供し、チーム全体の生産性向上にも貢献しました。