web-dev-qa-db-ja.com

レガシーコードの維持

私はまだ「機能する」古いコードベースを持っていますが、維持するのが難しい/ほとんど不可能です。それを更新するのは(時間とお金の面で)高価かもしれません。私はそれだけのために行くのですか、それとも自分の世界を憎み続けるべきですか(しかし、機能し、比較的バグのないものに取り組み続けます)?

5
Jason

あなたのサイトに未来が見えたら、もしそれが保守可能でなければ、できるだけ早くそれを書き直してください。私はいくつかの+5年前の大きなサイトを管理しており、そこから来た愚かな問題に呪いをかけている間に、それらをすべて書き直すことができました。楽しみにしてそれを書き直してください。何か新しいものを構築する方が楽しいです;)

4
D4V360

特定の状況に依存することは確かですが、既存のコードベースを維持するのに費やさなければならない余分な時間と、それを更新する費用を考慮してください。詳細を知らないので、あなたが持っているものと格闘するのではなく、それを更新してください。

1

私も同じような状況にあります。私の会社には、必要なすべてを行うレガシーWebサイトがあります。さらに、外部の会社がそれを置き換えるために必要なものの90%を行うWebサイトを構築しています。彼らは、90%が110%になることを期待しています。

私は次の行動方針を決定しました。

  • 新しいサイトが配信されるまでレガシーWebサイトを維持します
  • 新しいサイトに可能な限り迅速に追加機能を統合する
  • 新しいWebサイトを、置き換えられていないかのように維持する
  • すべてが稼働したら、サイトを再構築して移行計画を作成します
  • 新しい新しいサイトに移行し、古いサイトのいずれかが存在したことを忘れる

他の2つのサイトを単に無視したいのですが、それは選択肢ではありません。私がそれをどう感じているかに関係なく、配信されているサイトは、それを置き換えようとする前に、一定の月数の間、私たちにサービスを提供しなければなりません。それを最適化、維持、改善することが私の優先事項です。そのサイトは、その存続期間中に実行する必要があります。したがって、新しい新しいサイトを構築することは、その間、すべてが機能している間、そして私が何かをハックしたいときの個人的な時間のプロジェクトになります。しかし、それはすべての人の期待を管理するので大丈夫です。この新しいサイトが特定のレベルで機能することを期待している会社は、そのレベルでサイトのパフォーマンスを発揮し、同時に、舞台裏で積極的に改善します。そして同時に、私はそれを吹き飛ばす代替品を構築します。

私の状況では、(外部からの)私の「新しいサイト」はレガシーコードベースであり、「新しい新しいサイト」はshould-I-just-rebuild-itです。だから、私の短い答えは、世界を回し続けるためにレガシーコードベースを維持しながら、あなたはまだ再構築できるということだと思います。

0
Bryson

私は@ D4V360に同意します、何か新しいものを書くことに本当に喜びがあります。また、ジェフとジョエルが彼らのポッドキャストで話した「技術的負債」の概念を考慮してください。この件に関する関連リンクは次のとおりです。

  • Steve McConnell (偉大な本「Code Compete」の著者)技術的負債
  • 前述および当社独自の Jeff Atwood 技術的負債
0
Alan