事実:
1. GIT と他のバージョン管理システムでは空白の扱いが異なる
私の経験に基づいて、私たちはプロジェクトに直面しました: GIT や他のバージョン管理システムはinvisible spaces
+の扱いTABS
が異なり、実際には影響を受けていない行の変更につながります。space
誤って追加された+ TAB
= インデントが IDE では同じように見えても、GIT ではマージ時に違いが生じるため、気付かないのは簡単です。ソース管理でリビジョンを効果的に比較する能力が損なわれます。これは本当に恐ろしいことです。あなたが持っているspaces
だけのときは決して起こりません。
2. 共同作業者の環境 (エディタ、OS、設定など) の違いを中和する
タブの幅 (スペース単位) は環境 (テキスト エディター、OS、設定など) によって異なりますが、スペースの幅はどこでも同じです。IDE は、余白を個人の好みに合わせて処理できるほどスマートですが、コラボレーション用に生成される出力は標準に準拠する必要があります。PSR-2 が述べているように、スペースのみを使用し、スペースとタブを混在させないことで、差分、パッチ、履歴、および注釈に関する問題を回避できます。スペースを使用すると、行間の位置合わせのために細かいサブインデントを簡単に挿入できます。
3.スペースを使用する開発者は、タブを使用する開発者よりも多くのお金を稼ぎます
タブの代わりにスペースを使用すると、給与が 8.6%高くなります。タブの代わりにスペースを使用すると、さらに 2.4 年の経験と同じくらいの給与差が生じます。(出典: Stack Overflow 2017 開発者調査)。
4. コーディング スタイルの重要性に関する多数の研究
プロジェクトのすべての共同作業者がコーディングに関して同じ基準を維持する場合、長期的には良い結果が得られます。共同作業はより効率的で専門的になり、リファクタリングや開発の際も同じインデントになります。それに関する研究:
たとえば、Ben Shneidermanはプログラマーの行動に関する探索的実験でこれを確認しました。
プログラムステートメントが賢明な順序で配置されている場合、専門家は初心者よりもよくそれらを覚えることができました. ステートメントがシャッフルされると、専門家の優位性が低下しました。
Code Completeで引用されたSoloway と Ehrlichによる 1984 年の古い研究、およびThe Elements of Programming Styleからのサポートされた研究:
私たちの経験的な結果は、これらの規則に歯を入れます:プログラムが特定のスタイルで書かれるべきであることは、単に美学の問題ではありません。むしろ、従来の方法でプログラムを書くことには心理的な根拠があります。プログラマーは、他のプログラマーがこれらの談話規則に従うことを強く期待しています。ルールに違反すると、プログラマーが時間をかけて築き上げてきた期待によってもたらされる効用が実質的に無効になります。