5

どの原則、コードの品質、プラクティス、アプローチ、言語またはフレームワークの機能が、より広い範囲のケースで関数、クラスなどを効果的に再利用するのに役立ちますか. すべての状況は興味深いものです。コードの実装とインターフェイスの両方を変更して再利用を有効化/改善するか、実装のみを変更するか、まったく変更しないかのいずれかです。再利用の有効性を示す重要な指標は次のとおりです (私の場合)。

  • 実装と保守の労力をどれだけ削減できるか
  • アプリケーションの品質は低下しません
  • 複雑さがどれだけ軽減されるか

(すべて下位レベルからの再実装と比較)。

PS。可能であれば、回答ごとに 1 つの要素を指定し、それがあなたのケースでどのように役立つかを説明してください。

4

4 に答える 4

5

これは古典的です - 低カップリングと高結束です。モジュールまたは関数が 1 つの特定のタスクを実行し、依存関係がほとんどまたはまったくない場合、複数のタスクを実行し、多くの副作用があり、他のモジュールを必要とする場合よりも、はるかに再利用可能になります (より多様な状況に適合するため)。など

于 2010-01-30T13:21:06.767 に答える
3

テスト駆動開発。コードを簡単に単体テストするには、次のことを行う必要があります。

1) 一つのことだけをする

2) 依存関係をできるだけ少なくする

3) 多くの場合、これらの依存関係が渡されます (モックアウトできるようにするため)。

驚くべきことに、これらの要因は再利用可能なコードにも役立ちます。実際、これは偶然ではありません。再利用可能なコードを作成して、少なくとも 2 人の呼び出し元ができるだけ早くコードを使用できるようにするための最良の方法です。TDD で作成されたコードは、2 つの親 (作成中のコードと単体テスト) から始まります。そのため、最初から再利用されています。

TDD には、再利用以外にも多くの利点があります。すべてのコードに対して自動化されたテストが提供され、コードの使用方法に関するサンプル ドキュメントとして機能し、リファクタリングがより安全になります。TDD を使用してコードを記述すると、テストを行わずにコードを記述するよりも時間がかかる場合がありますが、多くの場合、デバッグにかかる​​時間を大幅に短縮することで解決できます。

于 2010-01-30T13:46:03.943 に答える
2

基本的に、関数には副作用がないはずです。グローバル変数を使用しないでください-関数が必要とするものを引数で渡し、関数の出力を戻り値として渡します

于 2010-01-30T14:35:36.867 に答える