@Karl Knechtelに同意する必要があります-これはかなり悪い質問です。彼が言ったように、理由を説明するのは難しいですが、試してみます。
最初の問題は、用語を定義せずに使用していることです。「コードの再利用」は、人によって意味が異なります。一部の人々にとって、切り取りと貼り付けはコードの再利用と見なされます。私はそれが好きではありませんが、少なくともある程度は彼らに同意する必要があります. 他の人は、切り取りと貼り付けをコードの再利用 (同じコードを再利用するのではなく、同じコードの別のコピーを別のコードとして分類する) として除外する方法で cod の再利用を定義します。その観点もわかりますが、私は彼らの定義が本当に意味があるというよりも、特定の目的を果たすことを意図していると考える傾向があります (つまり、「コードの再利用」-> 良い、「カット アンド ペースト」-> 悪い、したがって、"カット アンド ペースト"!="コードの再利用")。残念ながら、ここで見ているのは境界線上です。
教授が使用する定義は、OOP に対する彼の熱意の程度に大きく依存する可能性があります。特に、OOP が主流になりつつあった 90 年代 (またはその前後) には、多くの人が、OOP のみを含む方法で定義することを選択しました。クールな新しい OOP「もの」。コード再利用の涅槃を達成するには、彼らの OOP 宗教にサインアップするだけでなく、それを本当に信じなければなりません! 構成のようなありふれたものは、おそらく資格を得ることができませんでした.
2 つ目の重要なポイントとして、何十年にもわたって OOP を使用した後、何人かの人々が、どのコードが再利用され、どのコードが再利用されなかったかについて、かなり慎重な調査を行いました。私が見たもののほとんどは、かなり単純な結論に達しています。つまり、コーディング スタイルと再利用を関連付けるのは非常に難しい (つまり、本質的に不可能です) ということです。コードの再利用が発生するかどうかについて作成しようとするほぼすべてのルールは、定期的に違反される可能性があります。
第三に、私が思うに多くの人々の頭の中で最も重要な傾向があるのは、質問をすること自体が典型的なコーダーに影響を与える可能性がある/影響を与えるものであるかのように聞こえるという事実です。 「コードの再利用を促進する」に基づいた継承(たとえば)、またはその順序の何か。現実には、(ほんの一例として)主に、解決しようとしている問題をより正確にモデル化するものと、その問題の解決に役立つものとに基づいて、構成と継承のどちらかを選択する必要があります。
この主張を裏付ける本格的な研究はありませんが、そのコードが再利用される可能性は、ほとんどの研究ではめったに考慮されていないいくつかの要因に大きく依存すると思います。そうでなければ解決する必要があり、2) 新しいコードを書くよりもあなたのコードを彼らの問題に適応させる方が簡単だと彼らが信じているかどうか。
私が見たいくつかの調査では、コードの再利用に影響を与えると思われる要因が見つかったことを付け加えておきます。私の記憶の限りでは、最も重要/重要なものとして際立っていたのは、コード自体ではなく、そのコードで利用可能なドキュメントでした。基本的にリバース エンジニアリングを行わずにコードを使用できるため、コードの再利用に大きく貢献します。2 つ目のポイントは、単純にコードの品質でした。多くの調査は、コードの再利用を促進しようとしている場所や状況で行われました。かなりの数のケースで、人々は試しました実際よりもかなり多くのコードを再利用する必要がありましたが、単にコードが十分ではなかったという理由だけでそれをあきらめなければなりませんでした。
概要: コードの再利用は、少なくとも過去 20 年間で、ソフトウェア エンジニアリングにおいておそらく最も過大評価され、十分に実現されていない約束であったと記録に残します。せいぜい、コードの再利用はかなりとらえどころのない目標のままです。2 つの要素に基づいて真/偽の質問として扱うところまで単純化しようとすると、質問が単純化しすぎて、無意味であるだけでなく、まったくばかげています。それは、ソフトウェア エンジニアリングの実践のほぼ全体を矮小化し、侮辱しているように見えます。