0

大規模なasp.netアプリを維持しています。

私の目的は、特定のチケットに応じて追加された行を特定することです。SVN を使用することは可能ですが、コードに入れたいと考えています。これらの変更は、コードを初めて読む人には奇妙に見えるからです。

したがって、この目的に適したアウトライン方法はどれですか

{
//response to ticket #xxxxx
...
...
..
}

また

#region response to ticket xxxxx
..
...
..
#endregion

または、これに適した他の方法はありますか

4

5 に答える 5

13

2つの間で、間違いなくコメントを使用してください-それらは非常に柔軟です。リージョンはこの種のことには適していません-複数のチケットが重複するコード変更を必要とする場合はどうなりますか?それは長いコメントで簡単に説明されます。

しかし、とにかくコメントにこの種の情報を入れることには反対します。1年前に書かれたコードに実際に遭遇して、チケットを調べに行く人は誰もいません。コードは自明である必要があり、そうでない非常に奇妙なケースでは、コメントはコードが実際に何をするのかを説明する必要があり、理由は説明しません。新しい読者の特定の懸念に対処するために-あなたの同僚は、なぜコードがそのようになっているのかを正当化する必要はありません。彼らはそれが理由でそのようであると想定し、追加の変更を行うときは常に既存の機能を維持しようとします。それが基本的な職業上の行動です。

誰かが履歴情報を必要とする場合に備えて、チェンジセットをチケット番号に関連付ける必要があります。物事が各ファイルに保存される方法である理由の正当化のリストがあります。これは、コードベースの外部(ソース管理またはその他のリポジトリ)に保存されます。

私の経験では、コードにチケット番号を入れることは、通常、悪い習慣の兆候です。これは、設計を修正するのではなく、設計からの逸脱を示します。チケット番号には、「これがコードの状態であり、現在の状態です」と記載されています。コードベースは、独自の履歴を反映するべきではありません。重要なのは、コードベースが現在どのように機能するかです

于 2009-07-21T04:07:16.427 に答える
1

オプション1への対応:チケットにコメントを追加すると、コードの読みやすさが低下します。チケット修正をチェックインするときは、コードのそのセクションもより適切に文書化する必要があると思います(そしてこれは私の会社で奨励されています)が、繰り返しになりますが、チケット番号を追加すると混乱する可能性があります。

オプション2への対応:リージョンは、同様の目的を持つ関数をグループ化するためのものであるため、このオプションもお勧めしません。

提案されたオプション:コメント関数の///標準を使用し、これを追加します。これが変更されたものです。エレメント。この方法で修正しても通常の読みやすさは損なわれませんが、チケットに関連する関数を簡単に確認できます。追加のボーナスとして、このメカニズムは自己文書化であるため、これらは自動的に生成されたドキュメントに組み込まれます。注:カスタムタグがサポートされていることを確認することをお勧めします。

于 2009-07-21T04:11:29.260 に答える
0

いくつか試して、同僚の考えを確認してください。

些細な変更以外の場合は、ソース全体に変更が散在している可能性が高いため、SVNの非難/注釈を使用するのが最善の策です。

于 2009-07-21T04:08:31.433 に答える
0

SVN用のJIRAプラグインを使用して、特定のチケット用に変更されたコードファイルを直接確認します。

1行のコードを使用して2つのチケットを修正する場合があるため、リージョンが煩雑になる可能性があります。したがって、最初のものを選択します//チケット#

于 2009-07-21T04:08:32.230 に答える
0

最初のオプション。"//チケット#xxxxxへの応答"

初めてこれを行うとき...

int defaultVal = 12;

これに...

int defaultVal = 13;

#regionパラダイムを決定した場合、あなたは自分の人生を憎むでしょう。1行または2行のコード修正が標準であり、経験から、領域を使いすぎると、データが不必要に隠されて視覚的な流れが乱れることがわかっています。

あなたが知っているアイテムを隠すためにこれをする方が良いでしょう。

#region Old Code
//int defaultVal = 12;
#endregion
int defaultVal = 13; //Changed by Ticket:13414

これにより、新しいコードはデフォルトで表示され、古いコードは非表示のままになります。

于 2009-07-21T04:11:28.167 に答える