私は通常、このようなコメントは悪い習慣だと考えており、この種の情報はSCMコミットログに属していると思います。ほとんどの場合、コードが読みにくくなります。
ただし、特定の種類の編集では、このようなことを頻繁に行います。
ケース1-タスク
Eclipse、Netbeans、Visual StudioなどのIDEを使用する(または他のコードベースでテキスト検索を行う何らかの方法がある)場合、チームは特定の「コメントタグ」または「タスクタグ」を使用する可能性があります。その場合、これは便利です。
コードを確認するときに、次のようなものを時々追加します。
// TOREVIEW: [2010-12-09 haylem] marking this for review because blablabla
または:
// FIXME: [2010-12-09 haylem] marking this for review because blablabla
コミットログに何かを含めることは良いことですが、バグ修正XYが完全に忘れられた理由をレビューミーティングで尋ねるときには十分ではないため、Eclipseでこれをタスクビューで見ることができるさまざまなカスタムタスクタグを使用しますそしてすり抜けた。したがって、緊急の問題や本当に疑わしいコードの部分では、これは追加のリマインダーとして機能します(ただし、通常はコメントを短くしてコミットログを確認します。これはリマインダーがここにあるので、コードも混乱しないずっと)。
ケース2-サードパーティのライブラリのパッチ
何らかの理由でパッチを適用する必要があるため、製品がソース(またはライブラリであるがソースから再構築)としてサードパーティのコードをパッケージ化する必要がある場合、それらの「警告」をリストする別のドキュメントにパッチを文書化します将来の参照のために、ソースコードには通常、次のようなコメントが含まれます。
// [PATCH_START:product_name]
// ... real code here ...
// [PATCH_END:product_name]
ケース3-明白でない修正
これはもう少し議論の余地があり、上級開発者が求めているものに近いものです。
私が現在取り組んでいる製品では、時々(間違いなく一般的なことではありませんが)次のようなコメントがあります。
// BUGFIX: [2010-12-09 haylem] fix for BUG_ID-XYZ
これは、バグ修正が非自明であり、コードが異常な場合にのみ行います。これは、たとえばブラウザの奇抜なケースの場合や、製品にドキュメントのバグがあるために実装する必要があるCSS修正があいまいな場合などです。したがって、一般的には内部問題リポジトリにリンクします。このリポジトリには、バグ修正の背後にある詳細な理由と、外部製品のバグのドキュメントへのポインタが含まれます(たとえば、Internet Explorer 6の既知の欠陥のセキュリティ勧告、またはそんな感じ)。
しかし、言及したように、それは非常にまれです。タスクタグのおかげで、これらを定期的に実行して、これらの奇妙な修正がまだ意味をなすか、段階的に廃止できるかどうかを確認できます(たとえば、最初にバグを引き起こしたバグのある製品のサポートを削除した場合)。
これだけで:実際の例
場合によっては、何もないよりはましです:)
コードベースで巨大な統計計算クラスに出会いました。ヘッダーコメントは、通常のyaddaやyadda(レビュアー、日付、バグID)を含む変更ログの形式でした。
最初は廃棄することを考えていましたが、バグIDは現在の課題トラッカーの規則と一致しないだけでなく、入社前に使用されていたトラッカーのいずれとも一致しませんでした。そのため、コードを読み通して、クラスが何をしていたか(統計学者ではない)を理解しようとし、これらの欠陥レポートを掘り下げようとしました。偶然にも、それらはかなり重要であり、それらを知らないうちにファイルを編集する次の人の生活を受け入れていたでしょう。 。結論として、これらがそこになかったら、私は知らなかっただろう。彼らがそこにいなかったなら、そして私はクラスをよりよく理解していたなら、
これらのような非常に古い要件を追跡するのが難しい場合があります。結局、私がしたことはまだヘッダーを削除することでしたが、これらの「奇妙な」計算が特定の要求である理由を説明する各犯罪関数の前にブロックコメントを忍び込ませました。
だからその場合、私はまだこれらを悪い習慣だと考えましたが、少年は元の開発者が少なくともそれらを入れてくれて幸せでした!代わりにコードを明確にコメントする方が良かったのですが、それは何もないよりはましだったと思います。