こんにちは。EC事業部カラーミーリピートチームの@kymmt90です。
すこし前になりますが、12/9(土)に「Ruby on Railsの現場の知見」を共有する勉強会であるRails Developers Meetupの超拡大版となるRails Developers Meetup 2017がTECH PLAY SHIBUYAで開催されました。今回、ペパボからはEC事業部チーフテクニカルリードの@kenchanと私が『GMOペパボの Rails & Vue.js プロダクト開発の現場』についてお話ししました。
この記事では、発表についてのかんたんな紹介と、参加者の方々からいただいた感想などをふりかえりつつの補足をしていきます。
発表の紹介
発表スライドはこちらです。
EC事業部では、11月にカラーミーリピートという「事業者がかんたんに定期販売を始められる」定期販売用のサービスをリリースしました。発表では、このカラーミーリピートについて、
- 立ち上げにあたってのチームビルディング
- 開発プロジェクトを進めるにあたっての工夫点
- プロダクトのアーキテクチャとRails & Vue.jsを用いた開発
といった側面から紹介しました。スライドのはじめからp.23までのチーム開発の話は@kenchanが、p.24から始まる開発の詳細についての話は@kymmt90が担当しました。
チーム開発については、合宿や自由研究の紹介を通じて、ペパボの「もっとおもしろく」開発していくスタイルをお見せできたのではと思っています。また、OpenAPIを用いたスキーマファースト開発を事例つきで紹介するのはあまり見かけないように思うので、その点で参加者のみなさまに参考になった点があれば幸いです。
なぜ二人で発表したか
もともと、今回のペパボの登壇は、カラーミーリピートにふりかえりのオーガナイズなどで携わっていた@kenchanの単独枠でしたが、いい機会なのでRailsを使っているカラーミーリピートの技術的な取り組みの話を広めたいと思い、相談して私が@kenchanの発表に相乗りさせていただきました。その節につきましては、いきなり増えた謎の登壇者の対応をしていただいた運営の方々に大変感謝しております。ありがとうございました。
発表の補足など
Twitterやアンケートフォームでいただいた感想から、いくつかをピックアップして補足させていただきます。
Vue.jsの話が少ない
「タイトルにVue.jsとあるのにあまり出てこない」というのは本当にそのとおりでした……。発表でも若干触れたのですが、カラーミーリピートへのVue.jsの導入については、フロントエンドエンジニアの@tsuchikazuが第9回ペパボテックカンファレンスで紹介した次のスライドが詳しいので、こちらをぜひご覧いただければと思います。
誰がAPI定義を書くか
世の中のチームはAPI schema を誰が書いてるのだろう?私のいるチームはサーバ側の人が書いてるのだけど、理想はサーバもフロントも両方わかる人を育てて書く方がいいのではと思ってる。 #railsdm
— igaiga (@igaiga555) 2017年12月9日
カラーミーリピートのチームではフロントエンド/バックエンドの担当どちらのエンジニアもAPI定義を書いています。これには、フロントエンド担当のエンジニアがサーバサイド開発をもともと担当していたという状況も寄与しています。
インターフェースは開発メンバー全員が関わるポイントになるので、理想はフロントエンド/バックエンドどちらの担当でも書けるのがよいと思います。そうでなくとも、そのAPIに関わる人のあいだでレビューをするなどして、どちらの観点からも仕様として問題ないかを確認したり、設計上の知見を共有できるとよいと思います。
APIリクエストの集約について
フロントエンドサーバー、SPAのサーバレンダリング以外にAPIリクエストの集約とかはしないのかな #railsdm
— qsona (@qsona) 2017年12月9日
カラーミーリピートではいわゆるBackend for Frontend的な中間層は置いていないのですが、APIサーバ側でgraphql-rubyを利用したGraphQLエンドポイントを導入し、定期購入するお客様が閲覧する画面の一部で利用してみています。今後、レスポンス速度向上によるコンバージョン率向上を狙って、現在は複数APIを叩いている画面のバックエンドをGraphQLに変更して必要なデータだけ取得できるようにするなど、適用範囲を広げていきたいと考えています。
まとめ
Rails Developers Meetupで@kenchanと@kymmt90が発表した『GMOペパボの Rails & Vue.js プロダクト開発の現場』について、かんたんにご紹介しました。
会場の準備やすばらしいスムーズな進行をしてくださった運営のみなさま、発表をお聴きいただいたりフィードバックをくださった参加者のみなさま、本当にありがとうございました。