14

素晴らしい本「フレームワーク デザイン ガイドライン」(2008 年 11 月の第 2 版) の付録 A「C# コーディング スタイルの規則」を読んだ後、Microsoft が内部で使用している/推奨しているコーディング スタイルについてかなり混乱しています。

ブログ エントリA Brief History Of C# Styleは次のように主張しています。

実際、「StyleCop スタイル」と「フレームワーク デザイン ガイドライン スタイル」の違いは比較的小さいものです。

私が見る限り、違いはかなり顕著です。StyleCop では、開き括弧は別の行にある必要があると述べていますが、Framework Design Guidelines では、開きステートメントの後にある必要があります。StyleCop では、すべてのキーワードの後に​​スペースが必要であると規定されています。フレームワーク デザイン ガイドラインでは、「すべてのスペースを削除する」(2 項演算子の周りであっても) と規定されています。

フレームワーク設計ガイドラインの本から、このルールは特に皮肉だと思います (366 ページ、上から 6 番目のルール):

フロー制御ステートメントの前にスペースを使用しないでください

Right: while(x==y)
Wrong: while (x == y)

これは、StyleCop スタイルが間違っていることを明示的に示しています(while キーワードの後のスペース、等値二項演算子の前後のスペース)。

最後に、StyleCop スタイルを使用してフォーマットされたコードは、フレームワーク デザイン ガイドライン スタイルを使用してフォーマットされたコードとはまったく異なる "感触" を持っています。フレームワーク デザイン ガイドライン スタイルに従うことで、一連のルールを無効にする必要があります (フレームワーク デザイン ガイドライン スタイルへの準拠をチェックするルールはありません...)。

誰か (おそらく MSFT のインサイダー?) が、この相違点に光を当てることができますか?

あなたのチームはこれにどのように対処していますか? StyleCopをフォローしていますか?フレームワークの設計ガイドライン? スタイルを完全に無視しますか?あなた自身のスタイルを焼きますか?

4

4 に答える 4

9

stylecop チームによるこの記事では、あなたが求めていることを正確に説明しています。 http://blogs.msdn.com/sourceanalysis/archive/2008/05/25/a-difference-of-style.aspx

質問の 2 番目の部分に答えるために、私たちのチームは、すべてのルールを使用して StyleCop の使用を開始したところです (一部の人は、使用するルールを選択します)。私が気に入らないのは余分な時間がかかることだけですが、StyleCopForResharper のようなツールを使用すると、はるかに高速になります。以前は、私が書いたものとは異なるコードを書いた人がいると本当にイライラしていましたが、StyleCop を使用するようになった今では、どのコードも同じように見えます。人々がする迷惑なことについて唇を噛む必要はもうありません

于 2009-04-22T18:49:25.757 に答える
6

私がこれについて読んだブログ(URLが見つからないようです)には、フレームワークのガイドラインはC ++ガイドライン(すべてベテランのC ++開発者)に基づいて進化したものですが、stylecopが提供するガイドラインはより現代的な新しいC#ですガイドラインのみ...どちらも問題ありません。自分で決定してください...私は個人的にStyleCopのものを使用しています

于 2009-01-09T01:00:35.153 に答える
2

私たちはすべてのコードにStyleCopを使用しており、いくつかの小さな問題を除けば、その標準のほとんどが最も読みやすいコードにつながると感じています。その標準の多くはMicrosoft内で頻繁に議論されており、コミュニティからのフィードバックがあります。すべての人がすべてに同意することは期待されていませんが、おそらく最高の「標準」です(特に自動化が可能であるため)。検証、およびStyleCop for ReSharperプラグインによる自動修正)。

強く反対することがあれば、ツールを管理しているJason Allorは、たとえば、StyleCopが最初に主張した自動プロパティなど、特定のことに関する提案を非常に受け入れています...

public int Prop
{
    get;
    set;
}

...しかし、読みやすく、占有するスペースも少ないため、単一行のプロパティ(つまり、すべてを1行にまとめる)を許可するように変更リクエストを作成しました。彼は数日以内にこの変更を行いました。

于 2009-01-09T00:59:00.710 に答える
1

あなたは決定を下します。一方の部分と他方の部分が気に入った場合は、独自のスタイル ガイドを作成してください。どちらかが他のものよりも優れている場合は、それを選択してください。

重要なことは、スタイルを選択することです。厳密な定量的方法で相互に評価する方法はありません。

于 2009-01-09T00:52:38.350 に答える