私、私、そして私は、レガシーコードのプロデューサーであり、メンテナーでもありました。あなたのツールが「数千の違反」(またはその件で数百もの)を生成している場合、そのツールを忘れてください、それは状況に適用できません...
元の開発者はもういなくなっており、議論に参加できないと思います。そのため、設計とコーディングスタイルの理由と理由を理解している人は誰もいません。数百または数千の違反を修正することは、あちこちで数行のコードを書き直すことではありません。代わりに、間違いなくリファクタリング/再機能分解が必要です。現在の設計を十分に理解せずに、既存の大規模なコードベースに対してこれを実行しようとすると、まったく新しいバグ/問題/その他のセットを導入することになります。ワームの新しい缶は、あなたが現在持っているものよりもさらに悪い(またはあなたのツールが今持っていると考える>> <<)。
「数千の違反」に対処するための唯一の賢明なアプローチは、ゼロから書き直すことです。長くて高価な努力であり、経営陣に販売することはほとんど不可能です。そして、この場合、彼らはおそらく正しいです...
通常、レガシーコードには微調整が必要です。y2kの場合、または株式が256から10進数になったときのように。私は両方のcr * pをロードしました。そして、他の多くの同様のもの。通常、かなり悪い「スタイル」、「悪い機能的分解」、「悪い」などを「読み通して」、修正が必要な場所のコレクションを見つけることができるという点で、かなり「ピンポイント」です。そして、「それらの場所の間」で起こること、すなわち、より高いレベルのフローは、あなたにとって謎のままです。変更するローカライズされた機能を理解していることを確認してから、テスト、テスト、副作用のテストなどを行ってください。ローカライズされた知識では予測できません。
そのようなコードを自分のやり方で見ることができない場合、あなたはレガシーコードを維持するのに最適な人ではないかもしれません。空白の画面から始めて美しいプログラムを作成できる人もいますが、他の人のコードの大規模なコードベースから始めてそれを維持することはできません。他の人はコードを維持できますが、ゼロから始めることはできません。一部は両方を行うことができます。適切な人がレガシーコードを維持していることを確認してください。
従来のコードベースをゼロから再設計して書き直したい場合は、ビジネス(またはその他の)要件が変更され、パンツの「微調整」が変更された要件に対応できなくなる場合があります。 。そして、その時点で、最初に新しい機能要件ドキュメントを作成することから始めて、すべての利害関係者が参加していることを確認することもできます。それは基本的にまったく新しい球技です。
行うべき唯一の>> wrong <<ことは、新しいコードの開発と同じ方法でレガシーコードのメンテナンスを扱うことです。そして、その間違ったことが、まさにあなたが行きたい道であるように思われます:)あなたがやりたいことではないという私の言葉を受け入れてください。