質問
どの原則、コードの品質、慣行、アプローチ、言語、またはフレームワーク機能が、より広い範囲のケースで効果的に機能、クラスなどを再利用するのに役立ちます。すべての状況は興味深いものです。コードの実装とインターフェイスの両方を変更して、再利用のみを有効/改善するか、実装のみを改善できます。再利用の有効性の重要な指標は(私にとって)です。
- 実装と維持のための努力をどれだけ減らすか
- アプリケーションの質は低下しません
- どれだけの複雑さが減少しますか
(すべてが低いレベルからの再実装と比較)。
詩可能であれば、あなたのケースでそれがどのように役立つかを説明して、回答ごとに1つの要因を指定してください。
解決
テスト駆動型開発. 。コードを簡単に単位テストするには、次の必要があります。
1)1つのことだけを行います
2)できるだけ少ない依存関係を持っています
3)多くの場合、それらの依存関係を渡すことができます(ock笑することができるように)
驚くべき偶然の一致により、これらの要因は再利用可能なコードにもなります。実際、それは偶然ではありません - 再利用可能なコードを持っている最良の方法であり、少なくとも2人の発信者ができるだけ早く使用することを保証します。 TDDで作成されたコードは、2人の親から生命を開始します - 建設中のコードとユニットテストのため、最初から再利用されています。
TDDには、再利用以外に他の多くの利点があります。すべてのコードの自動テストを提供し、コードの使用方法の例のドキュメントとして機能し、リファクタリングをより安全にします。 TDDでコードを書くことは、テストなしでコードを書くよりも時間がかかる場合がありますが、時間を短縮する必要があることにより、多くの場合それを補うことができます。
他のヒント
それはクラシックです - 低いです カップリング そして高い結束。モジュールまたは関数が特定のタスクを実行し、依存関係がほとんどまたはまったくない場合、複数のタスクを実行する場合よりもはるかに再利用可能になります(より多くの種類の状況に適合するため)、副作用がたくさんあり、他のモジュールが必要です、など
主な要因はaです 人間 そして彼のスキル、経験、脳。
人がそれらを適用する方法を知らない場合、すべてのベストプラクティスは価値がありません。
より具体的になり、コメントに対処するために、コードの再利用性に寄与するスキル/個人的な態度に従うことになります。
- 規律 (コピーペーストは簡単で、優れた再利用性には規律が必要です)
- 情熱 (コードを再利用可能にし、誇りに思う必要があります)
- ヴィジョン プロジェクトの(コードステートメントだけでなく、プロジェクトの全体像を見る必要があります)
- フィーリング コードの(キャッチできる必要があります コードの匂い, 、役立つ実践とパターンを参照してください)
- 有効化のみ テスト駆動型開発 心は再利用性とともにコードの品質を保証することができます。
良い数学者、科学者、または芸術家になることに似ています。誰もが読んで学ぶことができる多くの慣行があります。 しかし、プラクティスを適用できる人だけが自分の技術を習得できます。
主なポイントは、再利用性の問題は 専門性ではなく性格.
関数には、本質的に副作用はありません。グローバル変数を使用しないでください - 引数で関数が必要とするものを渡し、関数の出力を返品値として渡す