コードフォーマットのガイドラインはどれくらい重要ですか?[閉まっている]


18

コーディング標準はどのソフトウェア開発組織でも一般的ですが、それに従うことはどれほど重要ですか?ある程度の一貫性の必要性は理解できますが、ブレースの位置、行の長さなどの単純なものを扱う場合、過度に厳しい標準がソフトウェア開発に大きく寄与するかどうかはわかりません。

事前定義された標準に準拠しているのではなく、コードが読みやすいことが重要ではありませんか?とにかくガイドラインに似ているようです。

回答:


12

すべての人に同じ標準のコードフォーマットガイドラインを100%遵守するように依頼することは、同じ執筆スタイルで100ページの論文を書く際に、全員に個別に協力するよう求めることと似ています。

みんなが論文を英語(または同じ言語)で書くことを願っていますが、異なるスタイルが明らかになります。うまく書く人もいれば、そうでない人もいます。収縮を使用する人もいれば、単語を完全に綴る人もいます(例:それは真実です)。等。

最も重要な点に触れたと思います。

  1. それはガイドラインです
  2. 読みやすさ

紙のように同じ書き方をするように、コードを同じフォーマットに準拠させる場合は、編集と修正が必要になります。コードはクリーンアップ、レビュー、リファクタリングなどが必要です。

私は、別の開発者のコ​​ーディングスタイルやフォーマットに完全に満足しているショップに行ったことがありません(最小限ではありません)。しかし、私はそれを読んだり理解したりすることができ、一貫していれば満足しています。 それ以外はすべて、構文糖上の糖です。

だからあなたの質問に答えるために:やや重要ですが、そうでない場合、それは確かに世界の終わりではありません。


3
特に#2:読みやすさ。ガイドラインから逸脱することで、特定のコードをより読みやすくすることができます。
バートヴァンヒューケロム

今日のIDEのおかげで、保存操作ごとにテンプレートに基づいてコードを再フォーマットすると、100%に近づくことができます。Eclipseはそれを非常にうまく行います。
マルクス

1
@Markusは、誰かが別のIDEまたはエディターを使用するまで機能します。開発者により多くの自由を与えるために、コミット前のフックでそれを行うことを好みます。
グスタフカールソン

フェアポイント@GustavKarlsson、この方法でフォーマットを集中化し、「標準」が変更された場合に単一の変更点を作成します。(より多くの労力を伴う)回避策として、新しいIDEの追加テンプレートをいつでも作成できます。
マルクス

5

標準化のフォーマットについては、私は他のみんながやっていることに従います。彼らがすべてにPascalCaseを使用している場合、PascalCaseを使用します。_camelCaseを使用する場合は、_camelCaseを使用します。どうして?それは私が行う再フォーマットの量を制限し、他の人がそれを「見栄えよくする」ためにしなければならないことを制限するからです。通常、フォーマット標準は、すべての人にとって物事を簡単にするためにあります。


5

現在の仕事で、最初の仕事の1つは、開発グループのコーディング標準を考案することでした。

私の最初の努力は約60ページの長さでした(Microsoftのフレームワークガイドラインの多くを取り入れました)。私はそれを削減するように頼まれました、そして、私の次の努力は様々な良いソースからのアイデアを利用して、10ページの長さでした。私は再びそれを削減するように頼まれ、最終的に3または4ページにそれを下げたと思います。

採用されたことはありません。

どうして?私はすでに賢明なコーディング標準に本能的に従っている多くの本当に頭の良い人々と仕事をしているからです。

私は、Microsoftから一般に認められているガイドラインに従い、一般的に使用されている他のスタイルをエミュレートします(JavascriptとjQueryは、どちらも中括弧言語ですが、C#とは異なる形式です)。また、規則を時々破ります。そうすると、コードが読みやすくなります。


非常に多くのコードが存在し、実際に使用される言語/フレームワークの標準であるのに、なぜ独自のコーディング標準を作成したのですか?
フローリアンマーゲイン

2
それは決して採用されませんでした -tadaa、そして答えを閲覧しているときに私が探していた声明がありました。それが全体のポイントです。より多くの人がいて、ルールの複雑さとand意性が高いほど、チームの大部分でさえ採用される可能性は低くなります。Visual StudioやGo言語のように何らかの形で実施されない限り、開発者は自分の考えに従う傾向があります。私は、コードコンテンツとコードスタイリングを分離するIDEを10年近く待っています。
JensG

2

この基本を実行するIDE(Visual Studioなど)を使用する場合、IDEにそれを実行させ、IDEにそれを実行させる限り、変更するのが難しいと思われるものを変更するか、それを自動フォーマットする次の人はとにかくそれを殺すつもりです。

1人にとって最も読みやすいのは、すべての人にとってではありません。

この種のIDEを使用していない場合は入手してください。これについて10分以上考えても、リソースは無駄です。


4
私は反対しなければなりません。書式設定を独自に変更するIDEほどイライラするものはありません。同意なしにコードを変更させなければならないのはなぜですか?それは私が私の仕事に対して持っているのが好きなコントロールのまともな部分を切り取ります。
derekerdmann

ビル、IDEが生成するTextBox01などのドラッグアンドドロップの命名規則について話していますか?または、ResharperのようなVisual Studioプラグインを意味しますか?
-spong

derek-はい、それは迷惑ですが、それに注意を払う必要がないことから私を救う時間は、私がそれを取り組まなければならない時間の10%に値します。
ビル

sun-この場合のみフォーマットを意味しました。何が起こっているかが非常に明白である場合にのみ、デフォルトのコントロール名をドロップしても問題ありません。2番目のコントロールの後にバラバラになる多くの形式。私は巨大なリシャーパーファンではありませんが、それを使用するとき、それが多くを生成するものを修正しようとはしません。必要のないときにツールセットと戦わないでください。
ビル

同じチームに複数のIDEが存在する場合があります(EclipseとIDEA for Javaなど)。構成ファイルの形式でコードのフォーマットを設定するには少し手間がかかりますが、それだけの価値はあります。
タロンクス

1

コードをすばやく理解するのに役立つことには、言及されていない利点があると思います。コードの書式設定がプロジェクトとすべての開発者に共通しているほど、コードを簡単に(そして無意識に)使用できるようになります。

単純なバグでさえも長期間にわたって対処しようと試みた後、ジュニア開発者を訪ねてきました。彼らにコードフォーマットを適用するのに数分かかった後、彼らは以前見逃していたバグをすぐに見ることができました。

読みやすさは間違いなく重要です。コード形式の標準がよく考えられていて、適切に使用されている場合、コードを読むだけでなく、コードをさらにすばやく理解できるようになることもあります。

コーディングフォーマットを開発または更新するときに使用するガイドラインのセットは、Gestalt Principles of Grouping- http://en.wikipedia.org/wiki/Gestalt_psychology#Gestalt_laws_of_groupingです。

直接的な結果/例として、コードの書式設定では、ブロックコード(if、switchなど)に次の行に開き中かっこが必要です。

if(true)
{
}

対称性の原理により、あなたの心は開いた括弧と閉じた括弧を見て、より迅速に自然にコードブロックを認識することができるという推論で。


After taking a few minutes to apply our code format with them, they were quickly able to see the bug that they had missed before.これは、あなたのコード形式が彼らがバグを見ることを助けたからではありません。これは、コードを再フォーマットするタスクにより、以前はざっと目を通しただけのコードを注意深く見る必要があったためです。
ブランディン

1

使用する言語やツールに関係なく、何かを考え出します。IDEを構成し、構成ファイルをチェックインします。

誰かがプロジェクトをチェックアウトするとき、同じフォーマットスタイルを使用します。スタイルが何であるかは問題ではなく、一貫しているだけです。スペースとタブ、および中括弧が続く行に関しては、私自身の好みがあります。しかし、私自身の好みよりも、特定のソースコードファイルが自分自身と一致することだけを気にしています。それは、フォーマット戦争に起因するミッシュマッシュであるよりもはるかに読みやすくします。


0

私がこれまで遭遇した最悪のことは、コーディング標準を使用していないことです。diffツールを壊すため、コードブロックを読みやすくすることは禁止されています...変更を適用するためにパッチを使用しているため(変更/バグ修正要求->修正/変更->パッチ->「信頼できる」人によって適用されたパッチ->コミット)(読みやすさの観点から)かなりおかしなソースコードを取得できます。少なくとも、2文字の変数を使用している人はいません(-。

[暴言]最もおかしいのは、これを変更する必要があることに全員が同意することです。いくつかの再フォーマットの試みもありました(コミット時に自動化されました)が、1つの小さな非常に厄介なフォーマットオプションが欠落しているため、すべてがうまくいきました。視力... [/暴言]


0

ガイドラインは、コードの品質向上に役立ちます。

  • 作家の観点から:多くのルールはバグの導入を減らすことを目指しています。たとえば、単一の命令ではなくブロックif()またはfor(;;)ブロックが続く必要があることを示すルールは、初期コーダーの意図を明示し、次のコーダーがこれを維持するのに役立ちます。

  • 読者の観点から:合意されたガイドラインに従うコードは、さまざまなスタイルのコードよりも効率的にレビューされます。レビューアは、起こりうるバグをどこで探すかをより少ない労力でよく知っています。


0

チームが何をすべきか、すべきでないかについての普遍的な基準はありません。厳格なガイドラインに従う必要があるチームもあれば、そうでないチームもあります。

ポイントは、チームとして協力して、チームに最適なものを決定する必要があるということです。コードは、書き込まれるよりも桁違いに多く読み取られるため、読みやすいはずです。チームが読み取り可能なコードを作成するためのガイダンスが必要な場合は、コーディング標準に従ってください。そうしないなら、しないでください。

そうは言っても、ほとんどのチームは、変数、関数、クラスに名前を付ける、ブレースを配置するなどの標準的な方法に同意することで恩恵を受けると思います。チームがそれほど簡単なことに同意できない場合、どうやって一緒になって本当に重要な決定を下すことができるのでしょうか?さらに、あなたのチームは永遠に同じ人で構成されることはありません-人は去り、新しい人は雇われます。新しい人がコードベースを簡単に理解できるほど、コードの品質を落とすことなくチームに貢献できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.