私は「スパゲッティコード」プロジェクトに取り組んでおり、バグを修正して新しい機能を実装している間、コードをユニットテスト可能にするためにリファクタリングも行っています。
コードはしばしば非常に密結合または複雑であるため、小さなバグを修正すると多くのクラスが書き直されます。そこで、リファクタリングを停止するコードのどこかに線を引くことにしました。これを明確にするために、次のような状況を説明するコメントをコードにいくつか落とします。
class RefactoredClass {
private SingletonClass xyz;
// I know SingletonClass is a Singleton, so I would not need to pass it here.
// However, I would like to get rid of it in the future, so it is passed as a
// parameter here to make this change easier later.
public RefactoredClass(SingletonClass xyz) {
this.xyz = xyz;
}
}
または、別のケーキ:
// This might be a good candidate to be refactored. The structure is like:
// Version String
// |
// +--> ...
// |
// +--> ...
// |
// ... and so on ...
//
Map map = new HashMap<String, Map<String, Map<String, List<String>>>>();
これはいいアイデアですか?その際、何に注意する必要がありますか?
1
関連/複製:TODOコメントは意味がありますか?
—
gnat
これは意見に基づくトピックです。しかし、私の個人的な意見は、これはまさに有用なコメントのタイプであり、他の人のコードで見つけられることを望んでいるということです。ないどのような方法ではありませんが、なぜ。
—
キリアンフォス
HashMap <String、Map <String、Map <String、List <String >>>>:o
—
margabit
なぜコードが臭いのように見えるのかを教えてくれるコメントは非常に高く評価されています。私はコードベースを理解していないかもしれないので、問題を見て「何をするの?」と考えますが、それがなぜそうなっているのかを説明するコメントは、コードを素早く回避するのに役立ちます。はい、非常にこれを行います。(もちろん、コードをWTFではないように修正できないと仮定して!)
—
Phoshi