1

私は ASP.NET Web アプリケーションを持っています。これは基本的にイントラネット サイトです。管理事務所の社員管理ページを大きく進めました。これは SQL サーバー データベースに結び付けられており、私は 3 層の設計 (オブジェクト、ロジック、データ アクセス) を使用しています。それはすべてレビューされ、すべてが受け入れられました。休暇と休暇の履歴を管理する部分。

詳細に入る前に、私の質問は、不要になったコードを効率的に「もつれ」させるにはどうすればよいかということです。

例: 以前は、各 VacationDay を独自の履歴を持つ独自のエンティティとして扱っていました。個々の日の履歴を追跡できるように。追跡に役立つように、.Submitted、.RequestDenied、.CancellationRequested などのオプションを含む VacationDayAction という列挙型を用意しています。これは、毎日の細心の注意を払って提供する試みでした。その後、それはもう必要ないと判断されました。ただし、VacationDays とそのすべての基本機能 (日数の保存、日数の取得など) は引き続き必要ですが、「履歴」関連のクラスはもう必要ありません。

私の問題は、VS で不要になったクラスを右クリックして [すべての参照を表示] に移動すると、大量の結果が複数のページに散らばって表示されることです。アプリケーションの残りの部分を壊すことなく、それらをすべて取り除く必要があります。不要になった部分を簡単にほぐすための「賢い」テクニックや方法はありませんか?私がやったことの 90% は問題なく、そのままにしておく必要があるため、これは特に困難です。しかし、その 90% のうち 10% は不要になったものです。各参照を削除すると、その参照への依存関係も、そうでないものを呼び出さないように修正する必要があるため、delete キーを使用して暴走することはできません。もうそこに。そして、アプリケーションがコンパイル可能な状態である必要があります。

私の経験の低さを理解していただくために、私は 2 年前に C#、ASP.Net、または Visual Studio をまったく使用したことがない状態から始めました。始めてから学習していたときに、誰かがブレークポイントを使用できることを教えてくれたとき、それは私の心を吹き飛ばしました。そして、多層設計について学んだときは本当に驚きました。このようなシナリオで役立つテクニック、トリック、または機能がないかどうか疑問に思っています。「絡み合って」不要なものを捨てる必要があります。

4

1 に答える 1

3

これは簡単な質問ではありません。実際、これはシステム開発者にとって大きな課題の1つだと思います。使用されていない古いコードを処理して取り除く方法。これについてはたくさんの文献があり、本当に優れた答えはほとんどありません。良い本は、多くの関連する問題を扱っているMichaelFeathersによる「レガシーコードで効果的に作業する」かもしれません。それは簡単な読み物ではなく、おそらく完了するのに少し時間がかかりますが、それはあなたがより良いコーダーになるのに役立つでしょう、そして特にこれらの種類のタスクでより良くなるでしょう。

たぶん、Resharperツールを見ることができますか?(http://www.jetbrains.com/resharper/)これは、とりわけ「デッド」コード(未使用のコード)を灰色で表示し、削除できる生産性ツールです。また、各クラスから未使用の参照を削除するのにも役立ちます(ここでも、それらはグレー表示され、自動的に削除できるようになります)。

コード/コンポーネントの各主要部分が関連するコンポーネントにリンクする線のあるボックスである図を描くと、より良い概要を得るのに役立つ場合があります。コードのさまざまな部分がどのように関連し、依存しているかを示す階層を描画してみてください。

私の知る限り、肝心なのは、コードを少しずつコメントアウトしてから、再コンパイルしてテストするだけでよいということです。それでも機能する場合は、問題なく、コメントアウトされたコードを完全に削除できます。コードをカバーする単体テストがあれば、これは簡単ですが、残念ながらよくあることですが、そうではないことを前提としています。

于 2012-07-03T09:19:11.283 に答える