これがだまされている場合は許してください。しかし、この正確な質問に当てはまるものは見つかりませんでした。
私は非常に緊密に結合されたレガシーアプリケーションを使用しています。外部サービスからその機能を取得するため、主要な機能の一部を引き出しています。
現在使用されていないコードの削除を開始するための最良の方法は何ですか?極端なベースから始めて、スタックを削除してリファクタリングする必要がありますか?昼食時に、レガシーコードを効果的に使用する方法を見ていきます。
これがだまされている場合は許してください。しかし、この正確な質問に当てはまるものは見つかりませんでした。
私は非常に緊密に結合されたレガシーアプリケーションを使用しています。外部サービスからその機能を取得するため、主要な機能の一部を引き出しています。
現在使用されていないコードの削除を開始するための最良の方法は何ですか?極端なベースから始めて、スタックを削除してリファクタリングする必要がありますか?昼食時に、レガシーコードを効果的に使用する方法を見ていきます。
可能であれば、問題のドメインでそれが理にかなっている場合は、開発中に、レガシーコードを新しいAPIと並行して機能させ続けるようにします。また、レガシーAPIの結果を使用して、新しいAPIが期待どおりに機能していることをクロスチェックします。
私のアドバイスは、findbugsとPMD / CPD(copy-paste-detector)を使用して、デッドコード(呼び出せない、または呼び出されないコード)の未使用の変数と重複したコードを削除することです。このジャンクを取り除くと、リファクタリングが簡単になります。
次に、IDEでの一般的なリファクタリングのキーマッピングを学習します。メソッドの抽出と変数の導入は、1時間後に筋肉の記憶にコミットする必要があります。
あなたができる最も重要なことは、非常に小さなチャンクでリファクタリング/削除/テストすることだと思います。面倒で時間がかかりますが、後でリスクとエラーを制限するのに役立ちます。
また、変更するのが「リスクが低い」コードから始めます。
密結合されたコードの主な欠点を使用して...あなたの利点!ステップ1:交換する冗長機能を提供する領域を特定します。それを破る...アプリケーションの重要な部分のいくつかの簡単なスモークテストを行います。感触をつかんでください。
ステップ2:言語に応じて、関連する静的コード分析ツールを見つけ、必要なリファクタリング情報を取得します。
ステップ3:正確なパターンに絞り込む段階でステップ1を繰り返します。
もちろん、これはすべてサンドボックス環境です。これは少し無計画に思えるかもしれませんが、重要な機能テストに限定すると、プロセスで多くのリードを得る可能性があります。他に何もないとしても、レガシーコードのパターンを確実に特定できます。
ライブ開発バージョン[追加される新機能]では絶対にできません。機能のフリーズから始める必要があります。
私はシステムのすべてのコンポーネントを概要で見て、再利用の最大の場所を見る傾向があります。そこから、適切なデザインパターンを実装してそれを解決し、新しいコンポーネントを再利用可能にします。テストケースを作成して、新しいコードが期待どおりに機能することを確認してから、新しい変更を中心にコードをリファクタリングします。その後、満足するまで[概要など]を繰り返します。
私は多くの理由でこれを提案します: