19章コードを再利用するケース

縮小、再利用、再修復、再構築、再改装、再完了、再販売、

リサイクル、あるいは堆肥にできないのであれば、

それは、制限され、再設計され、あるいは製品化から取り除かれるべきだ。

――ピート・シーガー

「コードの再利用」という不思議な言葉を耳にすることがあります。いっとき、それは驚くほど流行りました。もう一つのソフトウェアの銀の弾丸であり、いんちきベンダーが売り込む何か怪しいものです。私は、そんなものには騙されません。

ソフトウェアを開発するときには、「ユースケース(use case)」の観点から話すことが多いので、ここでも「再利用のケース(reuse case)」の観点から見ていきましょう。

再利用のケース1:コピー&ペースト

一つのアプリケーションからコピーされたコードは別のアプリケーションに外科的に移植されます。それはコードの再利用ではなく、コードの複製です。すなわち、コピー&ペースト プログラミングcopy-and-paste programming)です。それは、悪魔のようなものです。コードに対して海賊行為を行うのに等しい行為です。ソフトウェアの七つの海の豊富なコードベースから、ソフトウェアの宝石を略奪する荒くれ者のプログラマ集団を想像してください。大胆不敵ですが危険です。それは、船乗りがひどい船酔いの状態でコーディングしているようなものです。

DRYのマントラを思い出してください。繰り返しを避けることです。

この種の「再利用」は、一つのプロジェクトで同じコード部分を数え切れないくらい複製した後に、バグがあることに気づいたときには、致命的です。そのバグをすべて見つけて修正することは不可能でしょう。

そうはいっても、あなたはプロジェクト間でコピー&ペーストを行うことで仕事を終わらせられると思うかもしれません。コピー&ペーストはたくさん行われており、それで世界が終わることはなく、過剰にDRYされたコードが抱える不必要な結合を避けられるとも主張することがあります。 ...

Get ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.