私は中規模のチームで働いており、これらの非常に大きなクラス ファイルに定期的に遭遇します。私の最初の傾向はナイフで彼らに向かうことですが、それは通常、事態を悪化させ、私を悪い精神状態に陥らせます.
たとえば、作業する Windows サービスが与えられたとします。現在、このサービスにはバグがあり、それを修正する望みを持つ前に、サービスが何をするかを理解する必要があります. サービスを開くと、誰かがすべてに 1 つのファイルを使用することにしたことがわかります。そこには Start メソッド、Stop メソッド、タイマー、すべての処理と機能があります。私は何千行ものコードについて話しています。コードが 100 行未満のメソッドはまれです。
クラス全体を書き直すことができず、これらの神のクラスがポップアップし続けると仮定すると、それらに対処する最良の方法は何ですか? どこから始めますか?最初に何を達成しようとしますか?この種のことにどのように対処し、すべてをスタビーにしたいだけではありませんか。
気性を抑えるための戦略があれば、それも大歓迎です。
ここまでのヒント:
- テスト範囲を確立する
- コードの折りたたみ
- 既存手法の再編成
- 発見された動作を文書化する
- 漸進的な改善を目指す
編集:
Charles Conway は、非常に役立つことが判明したポッドキャストを推奨しています。リンク
Michael Feathers (ポッドキャストの男) は、単純にプロジェクトをソース管理から外して直接操作し、変更を破棄することはあまりにも恐れられているという前提から始めました。私はこれについて有罪であると言えます。
彼は本質的に、あなたがもっと知りたいと思うアイテムを手に取り、それをバラバラにし始めると言った. 依存関係を発見し、それらを壊します。どこまでもそれに従ってください。
大きなヒント 他の場所で使用されている大規模なクラスを使用して、空のインターフェイスを実装します。次に、クラスを使用してコードを取得し、代わりにインターフェイスをインスタンス化します。これにより、コード内のその大きなクラスへのすべての依存関係の完全なリストが得られます。