3

これがだまされている場合は許してください。しかし、この正確な質問に当てはまるものは見つかりませんでした。

私は非常に緊密に結合されたレガシーアプリケーションを使用しています。外部サービスからその機能を取得するため、主要な機能の一部を引き出しています。

現在使用されていないコードの削除を開始するための最良の方法は何ですか?極端なベースから始めて、スタックを削除してリファクタリングする必要がありますか?昼食時に、レガシーコードを効果的に使用する方法を見ていきます。

4

5 に答える 5

4

可能であれば、問題のドメインでそれが理にかなっている場合は、開発中に、レガシーコードを新しいAPIと並行して機能させ続けるようにします。また、レガシーAPIの結果を使用して、新しいAPIが期待どおりに機能していることをクロスチェックします。

于 2009-08-19T13:53:09.663 に答える
2

私のアドバイスは、findbugsとPMD / CPD(copy-paste-detector)を使用して、デッドコード(呼び出せない、または呼び出されないコード)の未使用の変数と重複したコードを削除することです。このジャンクを取り除くと、リファクタリングが簡単になります。

次に、IDEでの一般的なリファクタリングのキーマッピングを学習します。メソッドの抽出と変数の導入は、1時間後に筋肉の記憶にコミットする必要があります。

于 2009-08-19T19:15:17.180 に答える
2

あなたができる最も重要なことは、非常に小さなチャンクでリファクタリング/削除/テストすることだと思います。面倒で時間がかかりますが、後でリスクとエラーを制限するのに役立ちます。

また、変更するのが「リスクが低い」コードから始めます。

于 2009-08-19T13:42:21.060 に答える
1

密結合されたコードの主な欠点を使用して...あなたの利点!ステップ1:交換する冗長機能を提供する領域を特定します。それを破る...アプリケーションの重要な部分のいくつかの簡単なスモークテストを行います。感触をつかんでください。

ステップ2:言語に応じて、関連する静的コード分析ツールを見つけ、必要なリファクタリング情報を取得します。

ステップ3:正確なパターンに絞り込む段階でステップ1を繰り返します。

もちろん、これはすべてサンドボックス環境です。これは少し無計画に思えるかもしれませんが、重要な機能テストに限定すると、プロセスで多くのリードを得る可能性があります。他に何もないとしても、レガシーコードのパターンを確実に特定できます。

于 2009-08-19T13:53:39.723 に答える
1

ライブ開発バージョン[追加される新機能]では絶対にできません。機能のフリーズから始める必要があります。

私はシステムのすべてのコンポーネントを概要で見て、再利用の最大の場所を見る傾向があります。そこから、適切なデザインパターンを実装してそれを解決し、新しいコンポーネントを再利用可能にします。テストケースを作成して、新しいコードが期待どおりに機能することを確認してから、新しい変更を中心にコードをリファクタリングします。その後、満足するまで[概要など]を繰り返します。

私は多くの理由でこれを提案します:

  1. リファクタリングであなたと一緒に働いている誰もが何かを学ぶでしょう
  2. 人々は将来の設計ミスを回避する方法を学びます
  3. それに取り組んでいる誰もがコードベースのより良い理解を得るでしょう
于 2009-11-25T05:44:22.150 に答える