はじめに 〜DRY or WET〜 怠惰であることが美徳とされるエンジニアは、一度つくった機能は二度と作らないようにしたいものだ。 だから共通部分を見つけ出し、それを切り出してライブラリとして使い回すということが行われている。 コピペはするな。 DRY(Don't Repeat Yourself) ところがある程度の経験を積むと、 むしろコピペしろ。 WET(Write Everything Twice) といった状況もあることに気づく。 この両極の価値観は、少なくとも「何事も共通化すればいい、というわけではない」ことを教えてくれる。 問題はその使い分けだ。 これに関しては実に多様な意見がある。 本記事ではそれらを類型立てて紹介することはせず、かわりに私の経験に基づく考えを記すことにする。 私は9年間、同一の組織で開発を牽引する立場におり、共通化と個別化の判断を繰り返し、またその結末も見て