コーディング規約について細かく考えるのはナンセンスな件
コーディング規約についていろいろと議論が、リアル、ネット問わず存在していますが、一番の正解かなー、と思うものが最近見つかりました。
自動フォーマットかけなさい。
コード規約の議論
私は、開発者のプロのはしくれとして、仕事をさせていただいています。毎日、コードを書いて、機能開発をしています。
ですが、性格上、エンジニア気質ではありません。新しい技術については、「何ができるか」に焦点をおいて聞きます。そのアーキテクチャがどーのだとかには、あまり興味がありません。手段のひとつでしかありません。
そんな私ですが、「綺麗なコード」の重要性はしっかり理解しているつもりです。可読性の低いコードは、それだけ再利用性が低く、カスタマイズしづらくなってしまう。その結果、チームとしての生産性低下に繋がり、大きな損失になります。
だから、コードは綺麗な方がいい。プログラミングの常識ですね。
でも、綺麗ってなんやねん。
っていう、大前提は、めっちゃあやふやなんですよね。綺麗ってお前、主観的すぎるやろ、と。ある人にとっては綺麗でも、ある人にとっては汚いコード、というケースを、よく見ます。
最近では、「イコールを揃えるか否か問題」にぶち当たりました。
int apple = 1; int appleForAdamAndEve = 2;
int apple = 1; int appleForAdamAndEve = 2;
さぁ、どっちが綺麗?と。
私は、後者のようにイコールが揃っている方が、綺麗に整列されていて見やすいと思うんですが、人によっては、前者の方が慣れ親しんだ形であり、イコールが変に揃っていると、気持ち悪く感じるようです。
他にも、
if(apple==0)return true; if (apple==0) return true; if (apple == 0) {return true}; if (apple==0) return true; if (apple==0) return true; if (apple==0) { return true; } if (apple==0) { return true; }
こんなんどないせいっちゅーねん。と。しかも、言語によって、これが正しい場合と、間違っている場合がありますし、正直好き嫌いの範疇なんだと思うんですよね。
これに対して、そもそも議論するのが、ナンセンス。時間の無駄。どのエディタが素晴らしいか、とか語るくらいに無駄。(そういうのを語るのが好きな人が、趣味として話す分には問題ないと思いますよ)
人間がやるべきじゃない?
で、これを解決する手っ取り早い方法は、「書いた後に自動フォーマットかけとけ」じゃないかな、と。機械化しとけ、と。
自動フォーマットに対する規則だけ、簡単に決めといて、あとはそれをかけることだけ、しとく。それで、この不毛な議論は解決するんじゃないですかね。
私はXCodeだとUncrustifyを使い、C#だとVisual Studio標準のフォーマッタを使うようにしています。
Uncrustifyは非公式ですが、クソ便利です。ルールは自分で決めれますし、めんどければ、ググればいいのが落ちています。会社にも、しれッと導入しています。
チームで作業する際の、コーディング規約の一番の目的は、「形式の統一」だと思うので、とりあえずチーム開発者は、なんらかのコードフォーマッタを導入することをお勧めします。
「公式のコーディング規約のドキュメントを読め」はみんな読みませんしね(笑)。