私は製品に取り組むチームに参加しました。この製品は 5 年ほど前から存在しており、ASP.NET WebForms を使用しています。元のアーキテクチャは時間の経過とともに薄れ、ソリューション全体で物事が比較的混乱しています。それは決してひどいものではありませんが、間違いなくいくつかの作業を使用できます。あなたは皆、私が何を意味するか知っています。
私は約 6 か月前にプロジェクト チームに参加して以来、いくつかのリファクタリングを行ってきました。これらのリファクタリングのいくつかは単純で、Extract Method、Pull Method Up などです。いくつかのリファクタリングはより構造的です。すべてのコンポーネントに付随する単体テストの包括的なスイートがないため、後者の変更は私を不安にさせます。
チーム全体がリファクタリングによる構造変更の必要性を認識していますが、プロジェクト マネージャーは、システムに回帰バグを導入していないという確信を持ってリファクタリングを行うための十分なテストがないという懸念を表明しています。彼は、まず (既存のアーキテクチャに対して) もっと多くのテストを書き、それからリファクタリングを実行することを望んでいます。私の主張は、システムのクラス構造が緊密に結合されすぎて適切なテストを記述できないということです。リファクタリングを実行する際には、よりテスト駆動型のアプローチを使用する方がよいかもしれません。これが意味するのは、既存のコンポーネントに対してテストを書くことではなく、特定の機能要件のテストを作成し、それらの要件を満たすために既存のコードをリファクタリングすることです。
最善の行動方針について経験のある人はいますか? 私自身の考えはありますが、コミュニティからの意見を聞きたいです。