見出し画像

大量のコミットや量が多いMRに潜むバグ

5回目まして。バグマニアのよっしーです。

だいぶサボっちゃいましたが、皆さまいかがお過ごしでしたしょうか。どのように過ごされていたにせよ、ご無事なら何よりです。先週末は熱海の土砂災害、あの国道135号の伊豆山あたりはたまに通るところでして、心が痛みます。元通りとはいかないでしょうが、穏やかな日常に早く近づるますよう、願うばかりです。

さて話を変えます。本文とまったく関係ないタイトル画像の「たまにうまい」については余談のため、この記事の最後に書きます。というわけで、まずは(間違いなくお忘れだろうと思いますが前回「大量のログやエラーに紛れるバグ」の続きとして)大量シリーズの「大量のコミットや、一回の量が多いMRに潜むバグ」のお話です。

■大量のコミットや、一回の量が多いMRに潜むバグ

何らかの開発をしよう!という時に、その昔はクライアントPCで開発して、ある程度まとめてバージョン管理システムにソースをアップすることが一般的だったと思います。当時のサーバーあげてコンパイル長時間かかった後のエラーとか罪に近かったですからね、確実に良い時代にはなっています。

最近は、現場や人にもよりますが、それほどまとめずに、一日数回とかもっと頻繁なんじゃないでしょうか、バージョン管理システムへのコミット(登録)やMR(マージリクエスト)が。

その中で、コミット自体がたくさんあったり、たくさんのチケット(修正)を一度のMRで対応していたりということは、エンジニアが間違える可能性が高く、バグが潜むことも多くなります。

なぜかと言いますと、実装する方はもちろん、レビューやテストする方も、いつもなら一つ一つ丁寧に確認するところが、一度に大量のコミットを相手にした場合、うまく処理できないからです。

開発エンジニアと一緒に一気に200件以上のSVNのリビジョンを追ったこともありますが、かなり気をつけていないと見落としちゃいますし、コメントも同じようなのが多くて時間もかかりました。

おそらくマルチタスクが得意な方でも、一瞬一瞬で二つ三つのことを同時に考えられるわけではないでしょうし、できるとしたらそれはそれでデッドロックしちゃいそうです。たくさんのことを一気に処理して、すべてうまくいくなんて、そんな素敵なことはなかなかないですよね。

ここまで読んで納得いただいたとして(笑)、では大量とはどれくらいなのだ?という疑問がわくと思います。回答としては、5とか10といった絶対値ではなく、通常時と比べての話になりますので、その差で判断してくださいとなります。通常の状態がわからないことには異常はわからないと思うので、いつもの現場チームや開発エンジニアのペースを把握することが大切です。

そうすれば、どこまでは大丈夫そう、ここからはまずそう(バグりそう)と、境目が想定できるようになってきます。厳密じゃなくても。通常なら一日数件程度のコミットなのに、30件くらいあったりとかね、それくらいならわかりやすいですけどね、逆に一日数回のMRで回数は通常だけど、一回が前日の数倍の量だったりとか。

「この量をこの期間でやっているのは怪しいな」という情報がバージョン管理システムにはあるものです。SVNやGitとお友達になって、情報から罠を探してみると楽しいですね。

というわけで、大量のMRと一回のコミットの量には注意しましょう。

■「たまにうまい」

最初の宣言通り、画像の看板「たまにうまい」のお話を少し。こういうのって「たま」ではない時、つまり「大体いつも」はどうなのか、気になりませんか?まずは「まずい」って頭に浮かぶと思うんですが、それだと商売になんないでしょうから、「とてもうまい」とか「劇的にうまい」なんですよね、きっと。妄想ですけどね、この店入ったことないですし。

そしてその前に、画像左側の「たまにうまい」が気になって右側の「居酒屋・ラーメン」を見落としちゃいそうですが、忘れてはいけません。

居酒屋とラーメンが並列ですので、「居酒屋・ラーメン屋」の間違いじゃないかとか、「居酒屋なんだけど、ラーメンも店主が趣味で作るから、たまにうまいんだよ」と居酒屋ではあまりメニューにないラーメンの存在を主張したかったのか。

それとも「居酒屋のラーメンって、たまに食べるとうまいよね」と同意を求めたのか、「居酒屋メニューの後に、〆のラーメンが(本来なら別の店に行かなきゃいけないけど居酒屋でそのまま)食べられるよ」というユーザーメリット追求型なのか。

ほんともやもやするし、さらにその組み合わせなのかとか、もっと突っ込み入れたいところですが、復活したばかりですので、ぼちぼちこの辺で。

ではまた。



この記事が気に入ったらサポートをしてみませんか?