サブルーチン=クソコードだよ
関数は原則として引数から戻り値を求めるものでテストが容易
もちろん副作用をもった関数もあるけど、わざわざ副作用と言ってるように
副作用は避けるべきものとして考えられてる

サブルーチンは戻り値がなく副作用がメイン
コードの責務とか考えなしに、似たようなコードがあったら
とりあえずサブルーチンにまとめちゃえってなる
その結果テストが容易ではなくなる