Здравствуйте, reversecode, Вы писали:
R>это потому что программировать вы учились как самоучка
Учиться программировать я начинал в школе программистов у Ершова, на приличных языках (слова "фортран" и "бэйсик" там употреблялись наравне с матами), и с профессиональными учителями.
R>а не в высшем учебном заведении по правильной литературе
В высшем учебном заведении я учился во второй половине 80-х, когда в ходу (и в приоритетах) были совсем другие парадигмы. В частности, ООП тогда было сугубой экзотикой, а C++ только народился.
R>и ни дизайн патеррны, ни другие умные книги по правильной декомпозиции не читали
Читал, а толку? В применении к моим задачам это выглядит, как "я знаю самбо, дзюдо, каратэ и еще много страшных слов". Сможете показать, как с помощью дизайн-паттернов и подобных техник заранее (то есть, на этапе проектирования) избежать избыточных зависимостей, дедлоков, гонок, инверсий приоритетов и т.п.?