コードフォーマットについて考える勿れ
みなさんコードはどのようなフォーマットで書いていますか?
インデントはスペース2つ?4つ?タブ?
演算子の前後にスペースを入れる?入れない?
ネストの括弧は改行せずに書く?改行する?
1行の最大長は80文字?120文字?無制限?
文字列を囲うのは'シングルクォート'?"ダブルクォート"?
こういったことを決めておくとコードに統一感が出て見やすく綺麗になります。
特に複数人でコーディングをするときに有効です。
これらを「コーディング規約」の一部として定めて運用するのが、よくあるやり方です。
揉める原因
じゃあどれを採用する?となると、これが悩みどころ。
それぞれ一長一短あり、それもケースバイケースだったり、あとは各人の慣れもあったり。
みんなどういうのがいいと思ってるんだろう?と調べてみても、主張は様々。
「これはもう決めの問題でしょ」ということで多数決とかで決めてしまったとしても、後から参画した人たちが不満を抱いたり。
んで初期メンバーが言われたりするんですよ。このフォーマットにしたのは誰だー!と。
どれだけ調べても、どれだけ熟考しても、万人が納得するフォーマットが決まらないので
ーーそのうち私は考えるのをやめた
そう。考えるだけ無駄なのです。
考える「だけ」ならばいいと思いますよ。自分なりのメリデメが見えたりするし、頭の体操になったりするし(笑)
そもそもフォーマットをどれかに決めたからといって、作ったものの動作にはほとんど影響ないんですよね。
影響するのは、コーディングする、コードを見る人たちの「視認しやすさ」くらいなものです。しかも、そんなに大差ない。
それなのに、この小さな不満は積もり積もって、時にはメンバーのメンタルやチームワークに大きな悪影響を及ぼすこともあるから厄介。
なのでもう考えるのやめましょうよ、ということです。
でも見やすいほうがいいよね
はい。ごもっともです。
視認性が良いほうがミスも減りますし。
じゃあどうするか。
チーム内でIDEを指定している場合は、IDEのデフォルトのコードフォーマッタを使う。ただし設定変更は許可しない。
IDEを定めていない場合は外部のフォーマットツールを使って統一する。ただし設定変更は許可しない。
こうすることで、不満があったとしても、それが人に向くことがなくなります。フォーマットはそのツールで決められたものであり、人が決めたものではないので。
このツールを採用したのは誰だ!という話になるかもしれませんが、コーディング規約を引っ張り出してきてフォーマットのひとつひとつを納得させるよりも、このツール使いましょうよ、と納得させるほうがよっぽど楽だと思いますよ。
みなさんもこのような問題をシンプルに解決して、よりよいコーディングライフを!
と、常日頃思っていたこの主張が…
ThoughtWorks社のTechnology Radarに、まんま書いていたんですよ。びっくりしました。
これです。少し昔の記事ですが。
なので、ちょっと悔しいので、自分なりの言葉で書いてみた次第です。
外部のフォーマットツールは、Technology Radarに書いてあるPrettierがオススメですよ。
Prettierは設定変更できる項目が少ない、非常に固いフォーマッタなので。
この記事が気に入ったらサポートをしてみませんか?