Archives

Stay Gold, Ponyboy.

コーディング規約について細かく考えるのはナンセンスな件

コーディング規約についていろいろと議論が、リアル、ネット問わず存在していますが、一番の正解かなー、と思うものが最近見つかりました。

自動フォーマットかけなさい。

コード規約の議論

私は、開発者のプロのはしくれとして、仕事をさせていただいています。毎日、コードを書いて、機能開発をしています。

ですが、性格上、エンジニア気質ではありません。新しい技術については、「何ができるか」に焦点をおいて聞きます。そのアーキテクチャがどーのだとかには、あまり興味がありません。手段のひとつでしかありません。

そんな私ですが、「綺麗なコード」の重要性はしっかり理解しているつもりです。可読性の低いコードは、それだけ再利用性が低く、カスタマイズしづらくなってしまう。その結果、チームとしての生産性低下に繋がり、大きな損失になります。

だから、コードは綺麗な方がいい。プログラミングの常識ですね。

でも、綺麗ってなんやねん。

っていう、大前提は、めっちゃあやふやなんですよね。綺麗ってお前、主観的すぎるやろ、と。ある人にとっては綺麗でも、ある人にとっては汚いコード、というケースを、よく見ます。

最近では、「イコールを揃えるか否か問題」にぶち当たりました。

    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は非公式ですが、クソ便利です。ルールは自分で決めれますし、めんどければ、ググればいいのが落ちています。会社にも、しれッと導入しています。

チームで作業する際の、コーディング規約の一番の目的は、「形式の統一」だと思うので、とりあえずチーム開発者は、なんらかのコードフォーマッタを導入することをお勧めします。

「公式のコーディング規約のドキュメントを読め」はみんな読みませんしね(笑)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)