Писать проект не на чистом листе, а натягивать на какой-то грамотный фреймворк, играя по его правилам. Это поможет освоить и понять некоторые паттерны, принципы
SOLID /
GRASP, которые вам уже порекомендовали, и избежать совсем неразборчивой каши в архитектуре.
Давайте понятные названия методам/функциям/классам. Избегайте длинных кусков кода – бейте на меньшие. Многие «правильные» практики сами встанут на место, если начнёте работать над проектом не в одно лицо, а с кем-то.
Делите сложность на
уровни абстракции. Самый верхний, как в общем функционирует ваше приложение, без деталей, всего несколько компнентов – например, веб-клиент, backend сервер и третий сервис. Эти 1-2-3 несложно запомнить/вспомнить ) Далее, как работает backend – с чем взаимодействует (БД, Redis). И т.д. вглубь, в детали.