ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

協業するときはコーディング規約を守ろう


誰かとコードを書くときは違和感があっても標準的なコーディング規約を守るようにした方がはかどります。IDEでなくても、そこそこ高機能なテキストエディターはドキュメントの書式をきれいにするコマンドを持っています*1。この機能を使うと、ある程度書き散らかしても、コマンド一発できれいな見た目になります。ひとりでやっているなら、またはみんな同じ規約を使っているならこれでも問題はありません。みんな幸せです。
しかし、だれかと作業するときに変に我を通して、自分だけ違うコーディング規約を使うとどうなるでしょうか?
その瞬間から、あなたのプロジェクトはマージするときの大量に無用な競合で悩むことになります。プログラムは人間みたいに空気を読んではくれないので、if(hoge)とif (hoge)の違い*2だけで「こことここが違うよ!えっへん!」といってきます。マジ空気読んでくれ。。。。そうでなくても、変更記録をみるとif文やfor文が、新しいコミットでことごとく頻繁に書き換わる珍妙な事態になります。そして何よりマージ終わって最初の作業が「コードの整形」になります。非常につまらない作業なのでよろしくないですね。高機能な作業環境だと変更点を記録していますが、コードを整形すると最悪の場合ファイルのほぼ全体が書き換わってしまうので、この機能が用をなさなくなってしまいます。

解決策は何か

標準コーディング規約を守る、またはコーディング規約を共有する。これが簡単かつ効果的な解決策です。デファクトの作業環境に合わせるのが楽でいいですね。ただ、いくら規約を統一したからといって小さい競合が起きなくなるわけではありません。効果覿面ではあるものの、銀の弾丸ではないので悪しからず。

*1:もしくはプラグインとして持っている

*2:ifのあとに注目