У меня, наверное, обычная проблема кодера - проблема в написании больших программ. Как только объем проекта превышает 1000 строк, я перестаю в нем ориентироваться.
Другая проблема - доведение подпроектов до конца. Закапываюсь в мелких изменениях, постоянном рефакторинге и в итоге оставляю подпроект как есть, и начинаю реализацию новой фичи. В итоге само приложение со временем начинает походить на кучу говна. А куча личных проектов заглохла после после месяца разработки.
Книги читал. Фаулер, Бек, SICP, HTDP, Макконел, Эккель, Хорстман и прочие. Понимаю , как надо делать правильно. Пишу каждый день уже несколько лет. Работа нравится. Но архитектура приложений от этого лучше не становится.
Как быть? Как правильно проектировать ООП программы?
p.s. смотрел код некоторых open-source проектов - там код часто ужасен, но архитектура приложения нередко очень хороша, на недосягаемом для меня сейчас уровне.