ソースを再利用するんじゃない、構造を再利用するんだ

なんだかソースを書くお仕事をしていると、
ソースを再利用するんだ! なんていう声が聞こえる。
ホントに? 実績もないソースを再利用する? ホントに?
いいよいいよ、しなくて良いよ。
再利用するのはソースじゃない、構造だ。


勿論、オープンソースのような多人数に対して開かれており、
テストされており、実行されており、実績のあるソースは再利用すべき、
でもさ、
テストもされてなく、メンテナンスを誰がするのかも解らず、
イミフなソースを再利用する意味ってないんだよ。

同じような機能を再実装している、
それは車輪の再発明だ、なんてことをいうこともある。


でもさ、
車輪は常に再発明されてる。
車輪は常に新しい何かから生まれてくる。
新しい何かから経験を持って、新しい車輪を生み出すんだ。
必要のある構造なら再発明すべきなんだよ。
腐ったソースを立て直すなんてまっぴらだ。


どんなソースだって、
どんな構造だって、
それが進化せずに使われることはない。
設計が正しければ構造もソースも直しやすいけれど、
ソースより構造の方が再利用しやすい。
進化させやすい。
ソースは進化させにくい。
腐ったソースはただの腐ったソースだ。
再利用の価値はない。


うん、構造を再利用しよう!
ソースを書くなんて時間かからないだろ?
せいぜい、数日から数時間だろ?
だから、ソースは捨てるんだ。
構造は再利用すればいい。

同じようなコードを書いていたら、
それの良いところを持ち寄って、
良い構造を生かして、良いコードにすればいい。
同じようなコードを書くことは悪じゃない。
だって、構造が違うだろ? 構造は進化するだろ?
その都度、ソースを書き直すことの何がおかしい?
俺たちはいつだって、ソースを書き始めることはできるだろ?


同じような失敗を繰り返す事が悪で、
同じような失敗を繰り返しそうなソースは全て燃やしてしまうべきだ。
勇気を持って捨てなさい。いらないソースコードなんて捨ててしまえ!
いらないということを認めてしまえ!
いや、本当にね。