コーディング標準の均一性が高すぎる可能性はありますか?


12

均一性が大きすぎるということはありますか?私が仕事をする場所には、命名規則、アーキテクチャ、活用するフレームワークなどを含む標準があります。しかし、最近、より多くのスタイルを検討することについて多くの批判がありました。

たとえばif、複数行と1行でステートメントを記述する場合、たとえばの??代わりにc#null結合演算子を使用して== null、インデントなどのスペースの量を指定します。

私はこれが個人的なスタイルの選択にもっと入り始め、チームや会社全体で均一である必要はないようです。ある人が他の人がより明確に読むと考えるものはそうではないかもしれません。この「余分な」均一性に価値はありますか?


2
こんにちはGratzy、Programmers.SEはディスカッションボードではありません。私たちはあなたが直面しているかもしれない本当の問題を解決するためにここにいます。解決しようとしている実際の問題はありますか?もしそうなら、質問を書き直して、答えが建設的になり、議論になることの落とし穴にならないようにできますか?

1
@Gratzyが別の言い方をすれば、個人的に直面している状況を考えると、正解の基準は何でしょうか?

2
FAQによると、@ Mark Trappは質問の基準です。すべての主観的な質問は建設的であることが期待されています。それをどう定義しますか?建設的な主観的質問…1.「なぜ」「どのように」を説明する回答を促します。2.短い答えではなく、長い答えを持つ傾向があります。3.建設的で、公平で、公平なトーンを持っている。4.意見よりも経験を共有してください。5.意見は事実と参考文献で裏付けられると主張する。6.単なる心のない社会的な楽しみ以上のものです。私の質問は少なくとも最初の4つをカバーしていると思います
-Gratzy

2
FAQの@Gratzy:「実際に直面する実際の問題に基づいて、実用的で回答可能な質問のみを行う必要があります。

2
@Mark Trapp私はすでに受け入れられる答えの基準を述べましたが、これは実際の問題であり、質問への関心と私が他の人が同意すると言う答えから率直に言ったとおりです。
グラッツィー

回答:


16

均一性は問題ではありません(それは良いことです)が、剛性や柔軟性に問題がある場合があります。均一性を追求する際に独断的になると、チームに与える害は、結果として生じる可能性のある均一性からもたらされる利益よりも大きくなる可能性があります。

最も重要なもの(命名および大文字の標準、インデント、改行、ブラケットの配置など)の基本スタイルを設定し、重要性の低いもの(ステートメント形式、括弧の周りの空白など)の推奨事項を設定することをお勧めします、そして残りを心配しないでください。


1
私はそこにいた

+1、私が言ったことを言ったが、より良い!
FrustratedWithFormsDesigner

@ピエールは、あなたが今フリーランスである理由です?:)
ニコール

本当にそうではありませんが、私はガイドラインについて多くの強迫観念のある人々に会いました。それがいかに極端であるかは恐ろしいです。制限はかなりよく定義されていると思います。

7

潜在的に何十人もの人々がその寿命の長年にわたってプロジェクトに取り組んでいるとき、スタイルをジャンプしなければならないとき、それは時々混乱します。執筆スタイルを少しだけ維持するさまざまな著者によってさまざまな章が書かれている本を読むことを想像してください。可能ですが、迷惑です。

ほとんどのIDEは最近スタイルを実施できるため、必要に応じて、選択したコーディングスタイルを指定するIDE設定ファイルを(プロジェクトのソースコードの一部として)配布し、全員がそれをインストールして使用しているコードをフォーマットすることができます。チェックイン時にコードを再フォーマット/スタイル設定する方法さえあると思います(まだ調査する必要はありませんが)。


ええ、おそらくアリのスクリプトをどこかに貼り付けることができます。
マイケルK

1
少なくとも、IntelliJには、チェックイン前にコードを再フォーマットするオプションがあります。
ニコール

3

私が見た不均一性の1つのケースは、適切性に関係なくすべてのプログラミング言語に適用される単一の標準を持つことです。

  • gotoCのような言語がなくても落胆しtryますcatch
  • InitialCaps標準ライブラリが存在するJavaScriptでの名前の使用(MicrosoftのMFCおよびC#など)initialLowerCase

2

均一性が高すぎるとは思わない。ただし、コーディング標準の仕様が多すぎることがよくあります。オープニングブレースを別の行に配置することの利点は、せいぜい疑わしく、それについて議論したり、コードの表面的な問題を修正するのに費やした時間を上回ることはありません。


2
@Tungano私はこれ以上同意できませんでした。コーディング標準のパラドックスは、それらが持つ価値は十分にあるということですが、議論する価値はありません。
チャールズE.グラント

3
プログラマーの喉に特定のスタイルを強制することが、これらの議論を避けるのにどのように役立つかはわかりません。実際、プログラマーを、彼らの主張を嫌うスタイルに適応させる、または少なくともresみを生じさせると私は主張します。
JohnFx

1
@JohnFx。ほとんどのプログラマーは、スタイルの一貫性が特定のスタイルの選択よりもコードの品質と保守性に大きく貢献することに気付くでしょう。私の経験では、チームの素早い数え上げを行い、人々が好きなものと嫌いなものを確認し、すぐに合意に達することができます。時々、誰かが独特のバガブーを持ち、あなたはそれらに対応します。そして、彼らは他の誰かのバガブーを譲ります。ラクダケースが悪である理由について5分間チームを苦しめていることに気付いた場合、それをあきらめて、私の個人的な柔軟性のテストとして譲歩します。
チャールズE.グラント

1
ほとんどのプログラマーは、スタイルの一貫性がこのような大きな貢献をしていると考えていますが、実際はそうではありません。あなたのペットのスタイルと一致しないコードを見るのは面倒ですし、小さな化粧品の問題のためにコードのブロックを「きれいにする」ことは先延ばしにするのに良い方法です。見て、私はその時流にも乗っていたので、納品物ではなく金メッキに集中していることに気付きました。
JohnFx

1
ドイツのチームのコード、2、3のOSSプロジェクト、および現在持っているいくつかの古いコードを使用しています。一部はC、一部はC ++、一部はC#です。そのため、常にいくつかの異なるコードスタイルを使用する必要があります。そうすると、規格で義務付けられているスタイルガイドラインがどれほど些細なものであるかがわかります。あるプロジェクトから別のプロジェクトに切り替えることができれば、{}を別の場所に置いている人を扱うことができます。これが、私が気にする価値のある唯一の標準が、「各プロジェクト内の一貫性」という1つのルールを持つものだと思う理由です。
gbjbaanb

2

均一性には2つの引数があります。

  • 集団所有権の促進。誰かが「赤ちゃん」が変更によって傷つけられることを恐れることなく、他の誰かのコードを編集できること。一種の「私たちはみんな一緒にいる」という考え方。

  • 追加のしやすさ。他の場所で既に何かが行われている場合は、これを取り、おそらく再利用できます。特定の規則は、物事を読みやすくしたり変更したりするのに役立つことがあるので、これは私の心にとってもう一つの利点です。

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