コードはすでに書かれており、労力が費やされている
それも不要です。何にも使用しない場合、それが何をするか、どれだけの労力が費やされたかに関係なく、(定義により) 役に立たない.
コードは、構文および実際の環境でテストされる場合があります
それが役に立たない場合は、テストを行っても役に立たない. コードが役に立たない場合、そのコードのテストも役に立たないはずです (したがって、コメント付きのコードをそのままにしておくと、あいまいさが生じます。テストを保持しますか? コメント付きのコードのクライアント コードがある場合、クライアント コードにもコメントを付けますか? )
適切に整理されていれば (グループ化、個別のパッケージ、疎結合など)、全体的なコード分析やリファクタリングを妨げません。
そうではありません。すべてのツール (ソース管理、静的解析、ドキュメント エクストラクタ、コンパイラなど) は、より多くのデータを処理する必要があるため (そして、そのデータの大部分または小部分がノイズであるため)、実行速度が低下します。
一方、コードが適切に編成されていないと、静的分析、リファクタリング、およびその他すべてが台無しになります。
ツールの入力にノイズが入り、正しく処理されることを期待しています。
静的分析ツールでコメントとコードの比率を計算するとどうなるでしょうか? 昨日まで (またはコードがコメントされたときはいつでも) 関連していた何かで、それを台無しにしました。
最も関連性が高いのは、コメント付きのコード ブロックにより、メンテナンスやさらなる開発のためにコードを理解するのが遅れることです。このような遅れは、ほとんどの場合、多額の費用がかかります。自問してみてください: 関数の実装を理解する必要がある場合、何を見ればよいでしょうか? 2 行の明確なコード、または 2 行のコードと、もはや実際のものではない別の 26 のコメント?
コードは将来使用される可能性があります
そうである場合は、チームの選択した SCM で見つけることができます。
有能な SCM を使用し、(ソースを乱雑にするのではなく) デッド コードを保持することに依存している場合、誰がそのコードを削除したか (コミットの作成者) だけでなく、どのような理由で (コミット メッセージ)、および他の何を確認する必要があります。それに伴って変更が加えられました (そのコミットの残りの差分)。
削除されると、作者は不快に感じるかもしれません
そう?
あなたは (私が思うに) 開発者のチーム全体であり、「X の感情を傷つけることなく、あなたが知っている最高のソフトウェア」ではなく、あなたが知っている最高のソフトウェアを作るために報酬を受け取ります。
書かれたほとんどのコードが最終的に破棄されるのは、プログラミングの一部です。たとえば、Joel Spolsky はある時点で、彼の会社では、書かれたコードの約 2% が本番環境にあると述べています。
コード ベースの品質よりも開発者のエゴを優先すると、製品の品質が犠牲になります。仲間の開発者の未熟さを維持しますか? 同僚の非現実的な期待を保護しますか?
編集:ソースにコメントアウトされたコードを残す正当な理由を1つ見ました。それは非常に特殊なケースです:コードが奇妙で直感的でない形式で書かれていて、きれいに書き直す方法がそうでない場合本当に微妙な理由で働いています。これは、問題を修正するために繰り返し試みた後、およびその試みによって同じ欠陥が再び発生した場合にのみ適用する必要があります。そのような場合は、コメント付きの直感的なコードをコメントとして追加し、それが機能しない理由を説明する必要があります (将来の開発者が同じ変更を再度試行しないようにするため)。
// note by <author>: the X parameter here should normally
// be a reference:
// void teleport(dinosaur& X);
// but that would require that we raise another dinosaur and
// kill it every twelve hours
// as such, the parameter is passed by value
void teleport(dinosaur X);