バックエンドサービス開発で当たり前に行ってきたこと

2000年以降に継続的インテグレーションが広まっていき、今ではCIということで当たり前に行われています。Go言語でウェブサービスのバックエンドサービスを開発するようになって6年ほど経過していますが、日々の開発の中で私自身が当たり前と思って行ってきたことがいくつかあります。

  • ローカル実行:自分の開発用マシン(MacBook Pro)で、開発しているサービスの自動テストをローカルで実行できる

  • カバレッジ:テストを実行した結果、どの行が実行されなかったかをカバレッジで確認できる

  • 並列実行:Go言語の`testing`パッケージの`t.Parallel()`を使って並列にテストを実行することで、テスト対象のサービスに並列にリクエストを処理させる

  • 長時間ランニングテスト長時間ランニングテストができる

これらすべてができないとバックエンドサービスが開発できないわけではありません。そして、次のように反論されるかもしれません。

  • ローカルで実行できなくても、CIですべてのテストを実行できています

  • どの行が実行されていないかを確認しなくても、CIですべてのテストがPASSしているので問題ないのでは?

  • 逐次的にすべてのテストがCIで実行されてPASSしているので問題ないのでは?

  • ローカルで長時間ランニングテストをしなくても、CIでテストが1回PASSしているので問題ないのでは?

おそらく、この反論に対して相手が納得する説明を行うのは容易ではないです。なぜなら、私自身が当たり前に行ってきたことが何をもたらすかは、実際に行ってみてどのような問題を見つけるかを経験してみないと、容易に納得できないからです。

この記事へのコメント