コードコメントにJIRAの問題を含めることは、一般的に役立ちますか?


8

たまにはこういうコメントをします

# We only need to use the following for V4 of the computation.
# See APIPROJ-14 for details.

または

# We only need to use the following for V4 of the computation.
# See https://theboringcompany.atlassian.net/browse/DIGIT-827 for details.

そうすることに関する私の主な懸念は、JIRAへの依存度が高まることです。そのため、別のプロジェクト管理システムに移行する場合、これらのコメントはまったく意味がありません。近い将来に発生することは予測できませんが、組織コンポーネント(この場合は、コード、コードリポジトリ、プロジェクト管理システム)の結合の増加に引き続き注意します。

ただし、コードベース全体で、文書化された設計の決定と機能のインスピレーションへの参照があることの利点はわかります。私の知る限り、メリットは

  1. 設計の決定への明確な道筋。これは、見慣れないコードの特定のセグメントのデバッグと強化に役立ちます。
  2. 複数行のコメントが少ないため、コードがよりクリーンになり、新しい貢献者を脅かすことが少なくなります。
  3. (潜在的に)現在の技術的および非技術的利害関係者への明確な道筋
  4. 前述の理由により、「なぜここにあるのか」という質問の数は減少しています。

かなり露骨な複製です問題番号でコメント
gnat

2
@gnat「露骨」ではありませんでしたが、参考にしていただきありがとうございます。
Mr_Spock 2018

1
小さな利点の1つは、IDEなどのツールが対応するチケットへのハイパーリンクを簡単に作成できることです。
axd

回答:


7

私はそのようなコメントを避けようとします。彼らにとって、あなたが特に煩わしい要件を持つ場所があると思いますが。それがなければ、誰もがコードをリファクタリングしたくなるかもしれません。例えば。

//must log to the database instead of standard logging, 
//stupid requirement from those crazy DBAs!! see TKCT-1234

または同様にあなたはリンクを入れるかもしれません

//work around stolen from this stackoverflow answer http://stackoverflow....

しかし、カップリングの増加についてあなたが述べる理由ではありません。実際、私はすべての機能ブランチにそれらのチケットの名前を付けています。そのため、コミット履歴があっても、必要に応じてすべての作業をチケットまで追跡できます。(あなたが賢いと感じているなら、あなたはいくつかの賢い自動クローズのことをすることもできます)

いいえ、私は発券システムの変更について心配していません。しかし、私が気付いたのは、チケットが完成したら、誰もがチケットを振り返ることは非常にまれであることです。

ですからコメントはあなたの将来の取り替えに対して言っているので役に立ちます:

「いいえ、私は間違いを犯したことはありません。誰かがそれをこのようにすべきだと言ったのです。見てください!これを証明するためのチケット番号です!」

しかし、彼らは行ってそのチケットをチェックしません。人生は短すぎる。

チケット参照コメントをどこにでも置く習慣をつけると、その影響は失われます。フラグではなく「これを読んでください」は非常に重要です。彼らはただ乱雑になるだけです。

一般に、要件はテストの媒体を通じて記録する必要があります。テストに合格した場合は、要件を満たしている必要があります。テストが最初にどのように記述されたかについて心配する必要はありません。


1
同意する。追跡データベースを逆方向に検索したことがありますが、多くはありません。コードコメントに関連情報を1か所に配置することをお勧めします。そのため、有効なチケットにはチケット番号を付けたくありません。一方、私は現在のコードに残す可能性があるTODOに次のチケット番号/将来のチケット番号を残すという習慣になっています。これは、TODOがいつ解決されるかがわかり、誰かが後で来て、すでに閉じているチケットのTODOは、将来のチケットが有効になったときに逃したフラグです。
jia103 2018

5

コードコメントについては、ほとんど役に立ちません。バージョン管理コメントの場合、以下に概説する理由により非常に役立ちます。

コードのコメントは、複雑なものの意図を理解するために実際に使用する必要があります。

不正なタイプのコードコメント:

  • Updated EHS 10/24/2015 -それを知りたい場合は、バージョン管理を使用して、誰がどの行を書いたかを調べます。
  • For spec 0.4 -これはコミットコメントの一部になる可能性がありますが、コードを理解するのに役立ちません
  • 同じタイプの他のバリエーション。

コードコメントが存在する場合は、コードブロックがビジネスドメインにどのように関連しているかを理解するのに役立ちます。


JIRAとバージョンコントロールがリンクされている場合、はい、それらはコミットメッセージに対して意味があります。

  • チケットを参照すると、要求された作業に必要な変更の追跡可能性が提供されます
  • JIRAはこの同期が可能な唯一のチケット追跡ツールではありません。

次のようなコメント形式を強くお勧めします。

 DIGIT-827: We only need to use the following for V4 of the computation.

JIRAおよびこの統合を備えたほぼすべてのツールは、チケット番号を認識し、解決中のチケットに関連付けるのに十分スマートです。つまり、完全なURLは必要ありませ。また、特定のコミットのメリットを享受意味のあるコメントをすべて1行で提供できることも意味します。

JIRAでチケットを表示すると、説明などに関連するすべてのコメントを含む変更のリストが表示されます。


イニシャル/日付/変更の説明コメントに関して、私はレポで調べるのが良いことに同意しますが、私の最後のプロジェクトで、最初の著作権年とファイルヘッダーでソフトウェアの履歴を実行することは、著作権を最新に保つのに十分な証拠でした。そのため、ソースファイルが2013年に始まり、今日(2018)まで更新されている場合、ファイルヘッダーを更新する習慣により、追加作業なしで著作権を継続できます。 、失効の可能性を最小限に抑えます。
jia103 2018

@ jia103、著作権ヘッダーは、行のコメントが変更されたのとは別の問題であり、そのような日付は、現時点でチームのメンバーであるかどうかにかかわらず、誰かのイニシャルを使用しています。1つは合法的なものであり、もう1つは単純な冗長情報であり、その隣のコードを理解するためのコンテキストを提供しません。
ベリンロリチ

2

はい。ただし、まれなケースのみです。

一般的に、ほとんどのコードはJIRAチケットに関連して記述されると思いますので、定期的にチケットIDでコメントすることはしません。それがgit blameの目的です。しかし、場合によってはコードが直感に反する可能性があります。おそらく、コードを記述する最も明白な方法は機能せず、チケットにない理由についての議論がありました。その場合、チケット参照を含むコメントを追加することを検討します。

コードの一部で別の部分の既知のバグを回避する必要がある場合は、チケット参照を追加することも検討します。

JIRAから別のシステムに移行したい場合は、JIRAの問題をCSVとしてエクスポートして他のシステムにインポートできるため、これはJIRAに強く拘束しているとは思いません。問題IDはそのプロセス中に変更される可能性がありますが、インポートされたチケットのどこかにJIRAチケットIDを保持できるはずです。


1

Jiraの問題をコミットコメントに入れ、プラグインを使用してコミットを実際のJiraにリンクします。
コミットメッセージは次で始まります:

JIRA: XBVS-1222 Fixes bugs...

たとえば、bitbucketとjiraの間のフックは、コミットをjiraにリンクします。そうすれば、たとえば、行番号を右クリックして[変更履歴を表示]を選択することで、どのJiraがEclipseに関連しているかを簡単に確認できます。Jira課題番号とコメントが行番号列で強調表示され、マウスでホバーすると詳細が表示されます。


1
単一のJiraの問題は単一のブランチに相当し、各コミットには、推奨されるように、特定の問題のJira識別子で注釈が付けられます。私はこれを長い間使用してきましたが、git blameを使用すると、実際のコードを無用なコメントで汚染することなく、コードの変更とその理由を追跡するための優れた方法です。
アンディ

1

JIRAの問題をコードのコメントに含めることは確かにひどい習慣ではありませんが、この手法は2つの異なる懸念(問題とコード)を密に/手動で結合し、複数のシステム/場所(JIRA、ソース内のどこでも問題が言及されている)への更新を必要する可能性があります。バージョン管理履歴)。

コードのコメントは更新されないことが多いため、一般的に問題があります。

より良いアプローチは、問題追跡システムをバージョン管理システムと統合して、2つの懸念事項を個別に、自動化された方法で維持できる方法を見つけることです。

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