1
/
5

【エンジニアブログ】リリース対応漏れを防ぐ仕組み

こんにちは、GMOメイクショップの黒木です。

現在弊社では次世代EC開発プロジェクトが進行しており、私は新管理画面の開発を担当しています。その開発の過程で、リリース対応漏れを防ぐ対策として、Linterを開発・導入しました。この記事では、開発・導入の背景、概要と使用例についてご紹介します。

開発・導入の背景

新管理画面の開発では、フィーチャーフラグを使って新機能の公開を制御しています。外部のフィーチャーフラグ製品は使用せずに、特定の環境下でtrueを返すフラグを使用しています。

新機能を公開する際は、フィーチャーフラグの条件分岐を削除することでリリースを行います。条件分岐を削除するだけなので、リリース対応は非常に容易です。

このようにフィーチャーフラグを導入することでメリットがありましたが、課題もありました。開発からリリースまでの期間が長くなると、どこにフィーチャーフラグを仕込んだかを忘れてしまう、消し忘れてしまうという課題です。

これをレビューで指摘できれば良いのですが、人の力ではどうしても漏れが発生するため、自動で検出する仕組みとしてLinterの開発・導入を行いました。

概要

今回開発したLinterは、コード内のコメントと、リリース日が記入されたyamlファイルをもとに、対応漏れを検出します。

コード内のコメントにはRELEASE_FLAG:に続けて、フラグ名を記入します。このコメントはフィーチャーフラグの近くに記入します。

yamlファイルにはフラグ名とリリース日を記入します。

Linterはフラグ名をもとに、コメントとリリース日を紐付けます。 リリース日を過ぎてもコメントが残っている場合は、Lintエラーになります。

上記の例だと、2024年9月22日を過ぎてもコード内にコメントが残っていたら、Lintエラーになります。

弊社の場合、開発時点ではリリース日が決まっていないことが多いため、リリース日は未設定でも登録できるようにしています。リリース日が確定したらyamlファイルに追記するようにしています。

使用例

このLinterを活用して以下の手順でリリース対応を行うことで、対応漏れを防いでいます。

  1. yamlファイルからフラグ名とリリース日を削除します

2.フィーチャーフラグと一緒にコメントを削除します

3.コメントの消し忘れがあった場合は、yamlファイルに存在しないフラグ名のコメントととして、検出されます

         yamlファイルに存在しないフラグ名のコメントととして検出された例 

4.また、リリース対応を忘れてしまった場合は、リリース日を過ぎているコメントととして、検出されます

リリース日を過ぎているコメントとして検出された例

まとめ

弊社では、このようにしてリリース対応漏れを防いでいます。

このLinterを導入して1ヶ月弱ですが、すでに多くのメンバーに使用していただき、以前よりも対応漏れを防げている実感がします。

今後はさらにLinterの改善を続け、さらなる漏れ防止に努めていきたいと思います。


◆ 他のBlogはこちらから⇒ https://tech.makeshop.co.jp/◆ 

最後までお読みいただきましてありがとうございました。ご応募お待ちしております!

このストーリーが気になったら、遊びに来てみませんか?
Go言語!モダンな技術を使って日本一売れるECプラットフォームを作ろう
GMOメイクショップ株式会社では一緒に働く仲間を募集しています

同じタグの記事

今週のランキング

kaori satoさんにいいねを伝えよう
kaori satoさんや会社があなたに興味を持つかも