コーディング規約とは何か、なぜ必要なのか

あまり、意味が無いと思ってたが、必要な場合がやっと理解できた気がする。「コーディング規約の存在理由がわからない」という場合は「作った人が考えていることを少し書くのでちょっと参考にしてほしい


自分以外の人にコーディングを依頼するとき、「(こちらの思う)常識的なソースを書いてね」としたいならある程度のコーディング規約は必要になる。
例えば、こういうコメントを書かれたりする。

// Aさんが直さないまま渡してくるのでこっちで受け取った値を変換する

ぉぃ、それ、Aさんと対話して解決しろよ。
ソースに余計なしがらみを入れるんじゃない。いや、どうしてもこのソースで変換が必要ならもっと、マシなコメント残そうよ、せめて「なぜ変換が必要なのか」は書かないと。このソースをあとで見た人がAさんを誤解するだろうが。
プログラムの世界に限らず、他人と議論してどっちがどの仕事を受け持つ、というのを対話で解決できるのは「ごく一部の人間」しか、いない。いくつかのバグはこういうコミュ力のない人間が相手に確認を怠ることで入る。コミュ力のない人間に「そんなの直接Aさんと会話して解決しろ」というのは「泳げない人に太平洋を平泳ぎで渡りきれ」というぐらい難しい、か、あるいは時間がかかりすぎる。出来ない人に「やれ」というのはそれほどまでに難しい。下手すりゃ「やりたくもない仕事を強要されて精神的に参る原因を作られました」とか言われて、矛先がこっちに向く。
双方の言い分を聞いて、どっちがこの処理を受け持つかを決めて(プロジェクトのまとめ役してるならそれは当然の仕事で)何度もこんな話で呼ばれたりされるとこちらもたまったもんじゃないから、仕方なく「コメントの書き方ルール」が必要になる。
同じような話で、メソッド名やクラス名も「変な名前付けられた」のを見た場合。クラス名が「動詞」になっててメソッド名が「do1」「do2」とか「callA」「callB」という恐ろしいクラスとか見てしまうと、ぉぃぉぃ、こりゃまずいよ、仕方ないな「命名規約作る」の流れになる。「クラス名は名詞、メソッド名は動詞で書きましょう」とか。


結局のところ、ビジネスでプログラムを書く以上「自由に好きに書いていいよ」というわけには行かず、お客様にいつ見られても問題ない書き方をしなさい、というのを作業者に伝えるために「コーディング規約」が必要になる。どちらかというと「こんなことまで言わないといけないのか」の塊がコーディング規約となる(ことが多い、自分の周りではね)みんなが、似たような書き方になると、結果的にはみんなが読みやすくなる。
あまり作り過ぎると「コメントのここの場所に送り仮名があるか、ないか」とか(少なくとも俺にとっては)どうでもいい(だけど当事者には大事らしい)話題で周囲が盛り上がったりして仕事が進まなくなったりする。


参考:Google C++スタイルガイド 日本語訳

「終わりに」
に大事なことは書いてある。
「常識を働かせよう、そして、一貫性を持たせよう。(中略)コードを書く方がずっとおもしろい。さあ、楽しもう! 」