コードの共通化(共通処理の切り出し)の粒度
共通処理の切り出しについて、例えば、アップロードやダウンロードなどの単一の責務を与えられたクラスで、異なる機能やシステム間で共通化を図れる処理が見つかった場合、どの粒度で共通のメソッドにするか一瞬悩んでしまう時がある。
「ここまで共通化したし、動作確認もできているから一旦問題無いか」そもそも共通化には処理を集約して変更を容易にしたり(変更容易性)、冗長さを無くし読みやすくしたり(可読、保守性)といった目的があって、逆に言えば怠ると後に響いてきて諸々辛くなってくる。
「なんか引っかかるんだよな」とすっきりしないのであればその直感を無視せずに、責務を明確にしたり、コードの役割を改めて考え直してみると見えてくるものがあるだろう。



