ソース管理に削除された有用なコードがあるかどうかを判断するにはどうすればよいですか?


9

だから私はこの質問を読んでいましたが、参照されていないコードを削除する必要がありますか?

後で必要になった場合に備えて、コードは参照用にソース管理されているため、参照されていないコードを削除するというアドバイスがありました。

この削除されたコードをどのように整理して、後のバージョン(または他のプログラマー)が後で見つけられるようにしますか?どういうわけか、別のブランチを作成するか、それをソース管理でタグ付けしますか?

私はこれまでソース管理から削除されたコードを復活させたことはありません。私はほとんどそれを使って、まだ生きているコードの変更を追跡しました。他の誰かの実験的な作業が含まれる前にブランチを参照したので、トランクで削除されたコードの興味深いセクションをマークするための良い方法でしょうか?


あなたはどのVCSにavoutを求めていますか?svnの
gnat

私が考えているのはsvnですが、どのソース管理にも適用できると思いますか?
Peter Smith

あなたは、答えに対する反応として、「私がもっと心に思っていることは、プロジェクトが取り消されるか、延期される」と言います。「参照されていないコード」とはかなり異なるので、質問を編集する必要があると思います。
Pieter B

回答:


6

ブランチで実験していて、最終的にどのソリューションが再統合されるかまだわからない場合を除き、通常削除されたコードを参照しません

あなたは、上かもしれない非常にまれな機会、明示的に漠然とあなたが持っている問題を解決することを思い出す削除コードを掘る。ただし、削除されたコードが表示されるより一般的な理由は、バックログを調べて、アプリケーションの現在のコードまたは動作について、その履歴コードまたは動作に関して理解している場合です。

具体的には、あなたは...かもしれない

  • 一般的なコードレビューの実行/リファクタリングの理解
  • バグXを導入したコミットを探しています
  • 好奇心を満たす/バグを解決したコミットを探す
  • 機能または同様の機能の再実装
  • 存在しないコードと連携して機能しているように見えるコードまたはデータを理解する

...など

これらの場合、通常は古いコードを復活させることはありません。コンテキストやガイダンスのために削除されたコードを使用して、現在表示されているものを理解しているだけです。


4

おそらく、答えは次のとおりです。大多数のプログラマーは、削除されたコードを参照する必要はありません。いくつかの理由で。私の頭に浮かぶいくつかの理由は次のとおりです。

  • おそらく最も重要なのは、純粋な怠惰...

  • ほとんどの人はコードを復活させる必要性を感じたことがないため、コードの復活を容易にするよう動機づける経験はありません。

  • 削除されたコードのほとんどは、理由により削除されます。通常、他のより良い、機能的に同等の、またはより強力なコードに置き換えられます。なぜ誰かが劣ったコードを復活させたいのですか?

    これもまた心理的な問題であることに注意してください。ほとんどのプログラマーは、自分の仕事の結果に非常に誇りを持っています。彼らが置き換えたものにまだいくらかの価値があることをどのように思い出すことができるでしょうか?

  • ほとんどのコードは完全に削除されるのではなく置き換えられるため、移行中に変更されたインターフェースは、新しいコードによって導入された回帰によって削除されたコードを追跡する必要がある場合に十分な情報を提供します。

しかし、死んだコードに対するこの無視を後回しにすることができる有効な理由とは関係なく、それはプログラマーの側にとっては本当に「気にしない」だけだと私は思います。そして、削除されたものに何らかの方法でマークを付けようとしても、その努力で完全に無視されるように準備してください...


その理由をお答えしようと思います。置き換えられたコードである場合は、しばらくすると理にかなっているので、削除されたコードはもはや必要ありません。私がもっと心に留めているのは、プロジェクトのキャンセルまたは延期です。特に、大量の機能が開発または変更されたものの、最終的には完全に完成しておらず、現在の生産で使用されていないもの。
Peter Smith

1
@PeterSmith:そのようなコードには個別のブランチを作成する必要があります。とにかくコードは作業ブランチに存在しないため、コードを削除する必要はありません。
JacquesB 2016年

@JacquesBの発言に加えて、まったく使用されていないコードがあると、すぐに古くなる傾向があります。あなたは一年後に死んだ枝を復活させることができるかもしれません、5年後にあなたは最初からやり直さなければならないでしょう。デッドブランチはまだアイデアのソースとして役立つかもしれませんが、そのコード自体はもう使用できない可能性があります。
cmaster-モニカを2016年

1

この質問は、「バグデータベースとシステム要件に対するVCSチェックインの追跡可能性をどのように保つのですか?」

人々がソース管理からコードを復活させるときは、何かが意図せず壊れてしまい、元に戻す必要があることに気づくときが多いです。

削除されたコードの特定のビットを探している誰かにとってそのシナリオで最も重要なことは、要件データベースとバグ追跡ツールを調べて簡単に追跡できることです。特定の要件、または機能を説明する単語を検索する可能性が高いためです。削除されたソースファイルまたはクラス/関数の名前を知っている可能性は低いです。

リリース前に削除する必要がある興味深い/実験的なコードを追跡する場合は、「...の未使用のコードを削除する」の行に沿って、いくつかの「バグ」チケットで追跡できます。または、プロトタイプ機能のシステムに新しいタイプのチケットを導入することもできます

したがって、質問に直接答えるために-削除されたコードを追跡するためにVCSシステムでブランチ/タグを使用しないでください-変更追跡ツールを使用してください。


0

このアドバイスは、「念のため」、古いコードをコードベースに残している人を対象としています。コードは引き続きソース管理に存在するため、削除することを恐れるべきではありません。要は、不要になったということなので、削除したコードを実際に整理する必要はありません。コミットで変更および削除された内容を示すコミットメッセージを追加するだけです。削除されたコードに最も関連するコミットメッセージは、コードが最初に追加されたときのメッセージであり、再度削除されたときのメッセージではありません。

「実験的な仕事」は本当に別の問題です。そのための別のブランチが必要です。

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