最終的に、このタスクを自動化することも、アルゴリズムに還元することもできません。それ以外の場合は、リファクタリングされた変更をプレビューするツールがあります。最初にコードをうまく書けば書くほど、作業は簡単になります。
答えにたどり着く方法を説明しましょう。隔離が鍵です。すべてをオブジェクト プロパティにマッピングすると、レビューの自動化に役立ちます。
例を挙げることができます。特定のケースを以下にマッピングすることができれば、命を救うことができます。
OR/M変更パターン
Hibernate や Entity Framework のように...
データベース列への変更は、特定のオブジェクトのプロパティを使用するコードを分析することで簡単にプレビューできます。すべての DB 列がオブジェクトのプロパティにマップされ、純粋な SQLを使用するコードがないと仮定すると、見積もりを行うのに適しています。
これは、変更管理の非常に単純なパターンです。
ファイル システム/ネットワークまたはデータ ファイルの問題を上記のパターンに減らすには、他のソフトウェア パターンを実装する必要があります。つまり、複雑なシナリオをオブジェクトのプロパティの変更に減らすことができれば、IDE を活用して、コンパイルにわずかな変更が必要なコードや、まったく書き直す必要があるコードなどの変更を検出できます。
- 最初にソフトウェアを作成するときにリモート サービスの変更を管理する場合は、そのサービスをインターフェイスでラップします。したがって、その実装を変更するだけで済みます
- データファイル形式の変更の可能性を管理したい場合 (例: 位置形式のフィールドの長さの変更、列の並べ替え)、そのファイルをオブジェクトにマップするサービスを記述します (BeanIO パーサーを使用するなど)。
- ファイル システム パスの変更の可能性を管理したい場合は、より多くのランタイム変数を使用するようにアプリケーションを設計してください。
- 暗号化アルゴリズムの変更の可能性を管理したい場合は、それらをサービス (HashService、CryptoService、SignService など) でラップします。
上記を行うと、手動の要件レビューが簡単になります。全体的なタスクは手動ですが、自動化されたツールで支援できるためです。クラスのプロパティの名前を変更して、コンパイラでその副作用を確認することができます
最悪の場合
明らかに、コードの周りの複数の場所でプレーン SQL がハードコーディングされ、粉々になっているソフトウェアで、データベース内の特定の列の名前、型、および長さを変更する必要がある場合、さらに悪いことに、多くのテーブルが同様の列の命名を提示し、プロジェクトのドキュメントもありません (私は最悪のケースを書いていますよね?) 合計 10000 以上のクラスのうち、検索ツールを使用して手動でプロジェクトを探索する以外に方法はありませんが、それらに依存することはありません。
また、ソフトウェア テスト スイートの作成元となるドキュメントであるテスト計画がない場合は、それを作成する時が来ました。