0

現在、いくつかの新しいプロジェクトを追加し、いくつかの古いリポジトリからのレガシー コードとデータをマージして、ローカルの Subversion リポジトリを再構築中です。

過去にこれを行ったときは、通常、新しい「適切に構造化された」コードツリーを「邪魔」しないように、レガシーコードを専用の「レガシー」フォルダーに入れました。しかし、リファクタリングの精神からすると、これは少し間違っていると思います。理論的には、レガシー コードは時間の経過とともにリファクタリングされ、新しい場所に移動されますが、実際にはめったに起こりません。

レガシー コードをどのように扱いますか? 古い罪を「レガシー」フォルダーにしまい込み、二度と見たくないという誘惑に駆られるのと同じくらい、あるレベルでは、リポジトリ内のより「健康な」住人、おそらくレガシーコードはいつかうまくいく可能性が高くなりますか?

(ええ、私たちは皆、何かを書き直すべきではないことを知っていますが、これは私の「楽しい」リポジトリであり、私のビジネスプロジェクトではありません...)

アップデート

さまざまなバージョンを追跡する技術的な側面については心配していません。そのためにタグとブランチを使用する方法を知っています。これはより心理的な側面です。なぜなら、私はレポジトリに「きちんとした」構造を持たせたいと思っているからです。

4

5 に答える 5

4

すべてのコードはある日「レガシー」になります。なぜそれを分離するのですか? ソース管理は、プロジェクト/ブランチまたはプロジェクト/プラットフォーム/ブランチ、およびそのタイプの階層によって行われます。歯の中でどれくらいの長さか誰が気にしますか?

于 2008-09-09T10:31:39.327 に答える
2

タグ付けは、Subversion では非常に安価な操作です。リファクタリングを開始するとき、および進行中の定期的な段階で、コードにタグを付けます。こうすることで、古い (ただし機能するコード) に引き続き、ピカピカの新しい (ただし壊れたコード) のリファレンスとして簡単にアクセスできます。:-)

于 2008-09-09T10:30:04.043 に答える
1

レガシーと呼ぶものによって異なります。レガシーと言うのが本当に「廃止されたアプリケーションのコードであり、これ以上使用することはありません」という意味である場合は、現在のコードから分離する必要があります。現在のプロジェクトのものであるが、他の人によって書かれたものであるか、現在の基準に達していない場合は、通常どおりに扱いますが、課題トラッカーで将来のリファクタリングのためにフラグを立てます。

于 2008-09-18T10:27:14.163 に答える
1

以下は無料の心理分析です。

ここにあるのは、レガシ コードを修正してレガシではなくしたいという根深い欲求です。あなたがそれを隠しているとき、あなたはその欲求を抑圧しているだけであり、それが不快な感覚であるため、それを避けようとしています. それを放置すると、次の 2 つのうちのいずれかが起こります。最終的には気が狂ってしまい、自殺する必要があります。最後に分解して片付けるまで。

混乱を隠さないでください。それをきれいにします。そうしないと、遅かれ早かれ戻ってきます。

于 2008-09-16T18:32:11.407 に答える
1

外部定義( svn:externalsプロパティ) を使用して、サードパーティのリポジトリと同じようにレガシー コードを参照します。

次に、依存プロジェクトからリファクタリング作業を分離し、(固定リビジョン参照、つまり -r1234 を使用して) 依存プロジェクトが依存するレガシー コードのリビジョンを明確に示すことができます。

于 2008-09-09T10:49:09.957 に答える