Писать код так, чтобы он сам себя документировал.
Давать осмысленные имена переменным и функциям, пусть длиннее, зато читабельнее.
Почитать про архитектуру, паттерны.
Рекомендую "Чистый код" Р. Мартин. Там эта тема поднимается.
Скопировал заголовок вопроса и вставил в поисковую строку Гугла. Угадайте что нашлось? Правильно! 100500 ответов на вопрос, прям с первой ссылки начинаются.