2008-09-09 3 views
0

私は現在、いくつかの新しいプロジェクトを追加し、いくつかの古いリポジトリのレガシーコードとデータをそこにマージすることによって、ローカルのSubversionリポジトリを再構築する過程にあります。レガシーコード(およびデータ)をどのように扱いますか?

これまで私がこれを行ってきたとき、私は通常、レガシーコードを専用の "レガシー"フォルダに入れました。新しい "構造の整った"コードツリーを "妨害"しませんでした。しかし、リファクタリングの精神において、私はこれがやや間違っていると感じています。理論上、レガシーコードは時間の経過とともにリファクタリングされ、新しい場所に移動されますが、実際にはほとんど発生しません。

あなたのレガシーコードをどのように扱いますか?私は、「レガシー」フォルダの古い罪を取り除くように誘惑を感じていますが、それをもう一度見ないようにしています。あるレベルでは、リポジトリ内のより健康的な住人、コードはいつかうまくいく良い機会になるでしょうか?

(ええ、私たちはすべてwe shouldn't rewrite stuffを知っているが、これは私の「楽しい」リポジトリではなく、私のビジネスのプロジェクト...)

更新

私は保存の技術的な側面を心配していないです様々なバージョンのトラック。私はタグとブランチを使う方法を知っています。これはリポジトリに「きちんとした」構造を持たせる方が好きなので、心理学的な側面です。人間にはもっと簡単にナビゲートできます。—

答えて

4

すべてのコードはいつか「レガシー」になるのですが、それはなぜ別の理由ですか?ソース管理は、プロジェクト/ブランチまたはプロジェクト/プラットフォーム/ブランチおよびそのタイプの階層によるものです。それがどれほど長い間、誰が気にしていますか?

2

タグ付けは、Subversionで非常に安価な操作です。リファクタリングを開始するときにコードにタグを付け、移動中に通常の段階でタグを付けます。そうすれば、古いコード(機能コード)にも、新しく輝く(壊れたコードの)参考資料としてアクセスするのは簡単です。 :-)

1

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

リファクタリング作業を依存プロジェクトと区別することができます(固定リビジョン参照、つまり-r1234を使用)。従属プロジェクトが依存するレガシーコードのリビジョンを明示することができます。ここで

1

はあなたの自由な心理的な分析です:

あなたがここにある何それはもはやレガシーないように、あなたの既存のコードを修正するための根深い願望です。それを隠すと、あなたはその欲望を抑圧し、それを避けようとしているのは、それが不快な気持ちであるからです。オープンにすると、2つの事のうちの1つが起こります。それは結局あなたを運転し、あなたは狂ってしまいます。あなたは自分自身を殺さなければなりません。(もっと楽観的に)あなたは、あなたが最終的にそれを分解してきれいにするまで。

混乱を隠さないでください。それをきれいにする。それ以外の場合は、遅かれ早かれあなたをかわすために戻ってきます。

1

の内容によって異なります。レガシーと言うと、あなたが実際に使用しているコードと分かれているはずです。 現在のプロジェクトのもので、他の人が書いたものでも、現在の標準に達していないものもあれば、それを通常どおり扱いますが、将来は問題追跡ツールで再度考慮する必要があります。

+0

いくつかは「できるだけ早くこれをリファクタリングしなければならないが、それは退屈なので、延期し続ける」というものと、「これを10年前に書きましたが、私はこれと同じことをやり直す必要がある場合には、または私はちょうどノスタルジックな感じで、古いコードを見たいと思っています。 –

+0

...そして、あるものは、 "私は余裕を持っていますが、このプロジェクトをもう一度手に入れたいと思っていますが、それがいつ起こるか、しかし、私はちょうどその場合には、コードを守りたい "。 –

関連する問題