推奨される.NET / C#コーディング標準?[閉まっている]


19

.NET / C#プロジェクトにとって、どのコーディング標準が重要だと思いますか?これは、そのような中括弧と間隔とペダントリーを扱うことから何でもありえます。または、.NET Frameworkのどの名前空間を避けるべきか、構成ファイルのベストプラクティスなど、より基本的な質問になる可能性があります。

単純に別の投稿である投稿を作成しないようにしてください。たとえば、中括弧に焦点を当てた投稿が1つあればよいでしょう。一方のスタイルと他方のスタイルをサポートするために2つは必要ありません。アイデアは、ペットの基準に投票することではなく、基準を作成する際に考慮すべきことを具体化することです。

回答:


29

ここに、.NET frameworkバージョン4.0のコーディング標準に関する公式のMicrosoftガイドがあります。

1.1の古いバージョンが必要な場合は、ここをクリックしてください

彼らが言うように、私はこれを必ずしも「T」に追いかけるわけではありません。ただし、疑わしい場合は、これが現在の.NETフレームワークとの一貫性を保つのに最適な場所です。これにより、特定のプロジェクトの初心者であるかどうかに関係なく、誰でも簡単に作業できます。


3
うん-ソフトウェアを構築する人々が使用するものと一致して間違って行くことはできません。私はこの種のことについていくつかの宗教的な戦争を見てきましたが、自分のコードがそれが使用しているフレームワークと一致することを可能にする何かを渡されたとき、あなたはそれを使用しないように非常に強い議論をしなければなりません。ボーナスとして、MSが生成する静的解析ツールは、これらのプラクティスを探すために既に調整されています。
トッドウィリアムソン

投票権についてのフィードバックをお願いできますか?
ライアンヘイズ

あなたは何をフォローしませんか?
JeffO

まあ、そこにはたくさんのものがありますが、まだ覚えていません。だから、私はそれを正確に言うのではなく(私がそれをすることを知らないので、本当かもしれないし、そうでないかもしれない)、私はそうしないと言うだけです(笑)。私がすべてを知っていたら、おそらくそうするでしょう。
ライアンヘイズ

10

StyleCopを見てみたいかもしれません。スタイルエラーがビルドを壊すように、いくつかのビルドシステムに組み込むこともできます。デフォルト設定は、MSがガイドライン(他の人が投稿したもの)に対して提案しているものとほぼ一致しています。

また、デフォルトで付属しているルールを変更することもできます。







2

メソッドは短くする必要があります

ほとんどのメソッドは、クラス内のほとんどのフィールドを使用する必要があります。

名前をよく選択してください。

たとえば、クリーンコードの本を読む


2

次のアプリケーションを使用して、キャメルバックルール、メソッド名などのほかにコーディング標準を維持しています。

GhostDoc-各メソッドの上部に自動生成されたコメントを追加します。アプリケーションは、メソッドの初期の概要を提供します。(無料)

http://submain.com/products/ghostdoc.aspx

Resharper-コード分​​析とリファクタリング http://www.jetbrains.com/resharper/

StyleCop -TFSにチェックインする前の最終的なクリーンアップとして。(無料)

http://code.msdn.microsoft.com/sourceanalysis


1

確立されたコーディング標準は嫌いです。彼らはすべて、いくつかの愚かな間違いをしないように言ったり、何らかの方法でコードをフォーマットする方法を教えたりすることに関心があります。これらはすべて些細なことです。

私はあなたが意味する、彼らは(メンバーのために_など)の使用に何ハンガリー・スタイル'プレフィックス、あなたの変数を小文字にする方法、事業者間で入れてどのように多くのスペースを教えてくれます、相反するアドバイス(例えば、あなたがCxyzクラスを呼び出すことはできませんが、必要がありますインターフェイスIxyzを呼び出します)、コードのレイアウト方法(変数をクラスの最上部または最下部に配置)

全体像はすべて役に立たない。

効果的で保守可能で読みやすいコードを書くために重要なことは、これらの標準では決して言及されていません。

たとえば、変数をクラスの上部または下部に配置しますか?さて、誰が気にします-重要なのは、機能領域ごとに変数をグループ化する場合です。それは重要です(その場所に20個の変数が散在しているのを見たことがあれば、これを知っているでしょう)

中括弧を特定の場所に置くように指示されます。大したこと!K&RとANSIスタイルの両方のブラケットでコードを読むことができますが、それは問題ではありません。重要なのは、すべてのWindowクラスが何らかの形で区別されている場合(FormやDlgなどでサフィックスが付けられている場合)、どのファイルにウィンドウコードが含まれ、どのファイルが通常のオブジェクトであるかを確認できることです。

このようなものは、標準に通常含まれているマイナーなポイントよりもはるかに重要です。なぜこのように開発されたのかはわかりませんが、多くの場合、効果的で生産的なコーディングを妨げる大量のルールにすぎません。

私の標準では、コードとファイルの編成により重点を置いています。ファイルの検索場所を参照する特定の標準があります。たとえば、開発者以外の場合は、プロジェクトの1つを見て、必要なドキュメントファイルをすぐに取得できます。同様に、他のプロジェクトと同様の方法でプロジェクトコードをレイアウトしようとします(注:常に適切ではない可能性のある重度に禁止された方法ではなく、実用的です)。基本的に、必要に応じて変更できます。

要するに-彼らは私たちが一緒に働くのを助けるためにあり、常に従わなければならない一連の制限的なルールとしてではありません。


1

警告:以下のプラグマティズム -質問は、「適切な」中括弧スタイルなどについての議論を引き出すために語られているようです。私はそのナンセンスに時間を浪費することに我慢しません。

  1. ReSharperをインストールし、デフォルトのままにして、指示どおりに実行します。

  2. 利益-チームの全員が同じスタイルを持ち、Microsoftのガイドラインに酷似していますが、Resharperの標準が実際に業界でより広く使用されており、(おそらく)改善されているものを反映しているいくつかの点が異なります。

チームが巨大なドキュメントや本を作成して参照するのに費やす時間が少ないほど、またはcurly braces他の悪意に悩まされるほど、より多くのコーディングが行われます。ReSharperは、入力時に名前とスタイルを強制します。できた 議論の終わり。議論の余地はありません。続けて。

つまり、古典的なCode Completeを読むことで、コーディング標準の背後にある理論的根拠を理解し、コードを通じて意味を効果的に伝えるための多くの優れた指針を提供できます。標準文書や検査プログラムではできません。

resharperができることを強化したい場合は、StyleCop for ReSharperプラグインでStyleCopを追加してください。前述のように、MSガイドラインとReSharperのデフォルトの間にいくつかの小さな矛盾があります。私はそれらについてReSharperと一緒に行きます。ただし、どちらを選択しても、結果をReSharper構成ファイルに保存し、チーム全体で共有して完了します。

(いいえ、私はReSharperの有償ではありません。ただの幸せな顧客です。他の多くの機能に加えて、基本的なスタイルの問題を標準文書やコードレビューシステムよりもコスト効率よく処理します。 )

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