2

近い将来、WinForms アプリケーション (.NET 2.0) のバグを修正する予定です。ソース コードを調べてみると、大きなコード ファイル (2000 行以上) が見つかりました。それらのほとんどは、多数のコード ビハインドを含む生成されたダイアログです。

私が共有するためのヒントはありますか?バグ修正や WinForms アプリケーションのリファクタリングに関する戦争の話やベスト プラクティスはありますか?

4

4 に答える 4

2
  • まず、コードとその背後にあるロジックを理解してください。
  • コードの一部を理解したら、ビジネス オブジェクトに必要なクラスをモデル化してみてください
  • 新しい設計では、ある種のレイヤー アプローチを使用します (3 レイヤーがクラシックです): インターフェイス レイヤー、ビジネス レイヤー、データ アクセス レイヤー (またはその他のサービス レイヤー)。
  • たくさんの忍耐とすべてを文書化してください!

これが基本的なことだと思います。ここにいる多くの人は、たくさんの提案を持っているに違いありません。幸運を!

于 2009-04-11T08:32:00.360 に答える
1

いくつかの単体テストを書くことから始めます。コードがかなり密集している場合、正気を保つためにそれらが必要になります。

これにより、リファクタリングをかなり積極的に行うための自信が得られます。

于 2009-04-11T08:31:03.717 に答える
1

トップヘッドからのいくつかのもの:

  • 生成されたすべてのコードを部分クラスまたは領域に配置します (私は region を使用します)
  • すべてのコードをアクションから別のリージョンまたはクラスに関数として移動します
  • 関数ごとに単体テストを書く
  • この時点の後に一般的なリファクタリング パターンを実行し、同じ/類似した機能を 1 つの関数に結合します。
  • 異なるボタンが同じことを行うために異なる機能を使用しないようにしてください (特に VB.NET では、これは非常に一般的で設計されているため、アプリケーションで見つけることができます)。
  • コントロール イベント ハンドラでコントロール名をハードコーディングする代わりに、可能な場合は送信者オブジェクトを適切に使用します。
  • このコードのいずれかが適切なクラスに変換できることがわかった場合は、それを実行してください。WinForms からすべての非 GUI コードを取り除きます。場合によっては、元のクラスをリファクタリングして GUI で動作できるようにし、単体テストを作成してリファクタリングする必要があります。(通常、単体テストがなくても問題ありません)
于 2009-04-11T09:19:03.650 に答える