この記事はハワイアンAdvent Calendar 2020 18日目の記事です。今日はリモート飲みってやつで、事前にお酒も買って、いや〜とても楽しみにしていたのですが、いつメン(自分含め3人)しかいませんでした。そういう日もあるよね。いや、よくよく考えるとそういう日しかないかもしれないな。ここまで来るとストレングスではって思うね。
というわけで、今日はゆるい話題というか、素直に聞きたい話題にしようかなと思いました。
コードを書く時、重複コードの出現は何回までとか、何回出現したらアウト?みたいな話をすると思うんですが、何アウトですか?結構人による所があると思いますが、自分は3アウトです。コードの再利用は資産になるだけでなく潜在的な負債を生みます。コードの使いやすさは再利用性と反比例する事がしばしあります。1つのコードに限らず、再利用による結合が行われた場合、ものが動く以上の不利益が待っています。共有カーネルだと思って使ってしまうケースです。ので、あえて再利用ではなく重複を選んでもう少し見極めたいという所があっての3アウトです。2アウトを自信もってやる人はわりとその辺シュッと見極めてしまうですごいなと思います。
ではシステムはどうでしょうか。コードではなくもう少しユースケース全体な話です。何かしらの機能Aの為に作られたシステムがあります。そのシステムはSaaSやBaaSのように汎用的に作られたものではありません。半年後、機能Bについて検討した結果、機能Aのシステムの一部を再利用することで、開発工数少なくやっていく事ができるとします。みなさんは開発工数削減の為の機能Aの為のシステムの再利用を何度まで許容できますか?何アウトですか?
私は機能Aからの利用も含めて2アウト(つまり再利用を許さない)です。