見出し画像

コードフォーマットについて考える勿れ

みなさんコードはどのようなフォーマットで書いていますか?

インデントはスペース2つ?4つ?タブ?
演算子の前後にスペースを入れる?入れない?
ネストの括弧は改行せずに書く?改行する?
1行の最大長は80文字?120文字?無制限?
文字列を囲うのは'シングルクォート'?"ダブルクォート"?

こういったことを決めておくとコードに統一感が出て見やすく綺麗になります。
特に複数人でコーディングをするときに有効です。
これらを「コーディング規約」の一部として定めて運用するのが、よくあるやり方です。

揉める原因

じゃあどれを採用する?となると、これが悩みどころ。
それぞれ一長一短あり、それもケースバイケースだったり、あとは各人の慣れもあったり。
みんなどういうのがいいと思ってるんだろう?と調べてみても、主張は様々。
「これはもう決めの問題でしょ」ということで多数決とかで決めてしまったとしても、後から参画した人たちが不満を抱いたり。
んで初期メンバーが言われたりするんですよ。このフォーマットにしたのは誰だー!と。

どれだけ調べても、どれだけ熟考しても、万人が納得するフォーマットが決まらないので
ーーそのうち私は考えるのをやめた

そう。考えるだけ無駄なのです。
考える「だけ」ならばいいと思いますよ。自分なりのメリデメが見えたりするし、頭の体操になったりするし(笑)

そもそもフォーマットをどれかに決めたからといって、作ったものの動作にはほとんど影響ないんですよね。
影響するのは、コーディングする、コードを見る人たちの「視認しやすさ」くらいなものです。しかも、そんなに大差ない。

それなのに、この小さな不満は積もり積もって、時にはメンバーのメンタルやチームワークに大きな悪影響を及ぼすこともあるから厄介。
なのでもう考えるのやめましょうよ、ということです。

でも見やすいほうがいいよね

はい。ごもっともです。
視認性が良いほうがミスも減りますし。
じゃあどうするか。

チーム内でIDEを指定している場合は、IDEのデフォルトのコードフォーマッタを使う。ただし設定変更は許可しない。
IDEを定めていない場合は外部のフォーマットツールを使って統一する。ただし設定変更は許可しない。

こうすることで、不満があったとしても、それが人に向くことがなくなります。フォーマットはそのツールで決められたものであり、人が決めたものではないので。
このツールを採用したのは誰だ!という話になるかもしれませんが、コーディング規約を引っ張り出してきてフォーマットのひとつひとつを納得させるよりも、このツール使いましょうよ、と納得させるほうがよっぽど楽だと思いますよ。

みなさんもこのような問題をシンプルに解決して、よりよいコーディングライフを!

と、常日頃思っていたこの主張が…

ThoughtWorks社のTechnology Radarに、まんま書いていたんですよ。びっくりしました。
これです。少し昔の記事ですが。
なので、ちょっと悔しいので、自分なりの言葉で書いてみた次第です。

外部のフォーマットツールは、Technology Radarに書いてあるPrettierがオススメですよ。
Prettierは設定変更できる項目が少ない、非常に固いフォーマッタなので。


この記事が気に入ったらサポートをしてみませんか?