2

私は約 10 人の開発者のチームで働いています。一部の開発者は、非常に厳密な書式設定を必要としています。これらの仕様に合わせて構成できるきれいなプリンターを見つけて、ビルド プロセスに追加したいと考えています。このようにして、ソース管理から引き出されたときに他の人がフォーマットをどれほどひどく台無しにしても、それは受け入れられるように見えます.

4

4 に答える 4

1

あなたの問題は、NArrange (ベータ版) を作成する主な目的でした。これにより、C# コードの構成可能な再フォーマットが可能になり、1 つの共通構成ファイルを使用してチーム全体で共有できます。主にクラス内のメンバーの並べ替えと領域の制御に重点が置かれているため、必要な多くの書式設定オプション (特にメンバー コード行内の書式設定) がまだ不足しています。

通常の使用シナリオでは、各開発者がチェックイン前にツールを実行します。ビルド プロセスの一部として実行している人がいるとは知りませんが、コマンド ライン ツールであるため、実行できない理由はありません。私が熟考したアイデアの 1 つは、コミット前の手順の一部としてファイルに対して NArrange を実行することです。チェックインされる元のファイルの内容が、ソース リポジトリ サーバー上の NArrange 形式の出力と一致しない場合、開発者はルールに合わせて再フォーマットしていないため、チェックイン エラーが発生する可能性があります。

詳細については、NArrange を使用した C# コードの整理に関する CodeProject の記事を参照してください。

于 2009-01-07T00:02:37.737 に答える
1

最も簡単な解決策は、チーム リーダーがフォーマットを義務付け、全員がそれを使用することです。VSのデフォルトはかなり良いです。

Jeff Atwood が Stack Overflow で私たちにそれをしてくれました。最初は反抗しましたが、私はそれを乗り越えました :) すべてがずっと簡単になります!

于 2008-11-13T02:56:02.407 に答える
1

コーディング標準は間違いなく私たちが持っているものです。私が話しているコーディングのフォーマットは、白髪交じりのアーキテクトによって課せられたもので、たとえば、彼のやり方で設定され、非常に特殊です。人的要因に対処できないことにしましょう。人間のプロセス全体を回避する方法を探していました。

Visual Studio のデフォルトでは、残念ながら改行がうまく処理されません。私はちょうどこのラインチョッピングスタイルを作っていますが....

ServiceLocator.Logger.WriteDefault(string.format("{0}{1}"
                                                 ,foo
                                                 ,bar)
                                   ,Logging.SuperDuper); 

Visual Studio の書式設定の別の例は、あまり熱くありません....

if( foo
   && ( bar 
       || baz 
       || apples 
       || oranges)
   && IsFoo()
   && IsBar() ){
   }

Visual Studio はまったくうまく動作しません。このようなものになります。現在、ReSharper を使用してフォーマットをより細かくできるようにしていますが、残念ながら多くの分野でうまくいきません。

コーディング標準は優れていますが、誤解しないでください。ビルド プロセスの一部としてのプリティ プリンターの目標は、人々がどれだけ注意を払ったりスペースを数えたりしても、「完璧な」外観のコードを取得することです。

コードの書式設定に関するエッジ ケースは、明確に定義された文法であるため、非常に解決可能です。

VS のデフォルトに関する限り、私は次のようにしか言えません: BSD スタイルか死か!

それで、私は完全に一周します:C#用の構成可能なきれいなプリンターはありますか?字句解析と構文解析が魅力的であるのと同じくらい、私は YAML C# ツール チェーンを作成することに夢中になりました。

于 2008-11-13T04:56:42.040 に答える
0

私はジャロッドの答えに二番目です。コーディングの好みが対立する開発者が 2 人いる場合は、チームの残りのメンバーに投票してもらい、上司に多数決を支持してもらいます。

さらに、このようなプリティ プリンターを自動的に適用しようとする場合の問題は、ブランケット コーディング標準が最適または最も読みやすいソリューションではないという例外的なケースが常に存在し、自動化されたツールでそれらを押しつぶしてしまうことです。

コーディング標準はまさに標準です。彼らはそれらをコーディング法やコーディング規則とは呼びませんが、それには十分な理由があります。

于 2008-11-13T03:22:11.310 に答える