Спасибо.
Я в целом понимаю о переиспользовании, но когда пишешь сначала - не всегда видно, что именно будешь переиспользовать, а когда опомнился - видишь огромную кучу всего, что надо рефакторить и превращать в нечто пригодное для переиспользования, и эта куча пугает :)
Поэтому я и без переиспользования привык всё изначально аккуратно раскладывать на уровни и по ответственности. И пишу код сразу с честными юнит-тестами. Да, поначалу сложно, но в итоге пугающих куч никогда не возникает.