Сугубое ИМХО:
1) В голове держим только общие принципы.
2) Если есть какие то узкие нюансы, которые часто используются — используем хранилище сниппетов, либо в коде пишем комментарии, указывающие на уникальность блока — потом можно найти.
3) Стараться надо во все проекты протягивать удачные решения из прошлых проектов, даже если это вызовет замену части кода.
4) Тренировка мозга — Lumosity. Очень помогает.
Не уверен что полностью советы подойдут для веба. Сам пишу на с++, сейчас 2 активных проекта и 2 в поддержке. В каждом — свой движок. Вполне без проблем помню нюансы, либо быстро вспомниаю простым поиском по проекту.