Запас прочности
Пишите код так, чтобы он сохранял свое качество как можно дольше и деградировал медленнее, когда после вас он попадет в руки менее квалифицированных программистов.
Разделяйте проект на небольшое количество слабо и обоснованно связанных компонентов. Каждая зависимость между компонентами должна иметь веские причины.
Ищите простые и понятные абстракции — классы и интерфейсы, ответственность которых ограниченна и очевидна.
Пишите функции и методы, которыми удобно пользоваться. Поддерживайте небольшое количество независимых параметров простых типов.
Стремитесь к простым выражениям. Старайтесь делать их такими, чтобы можно было за пару секунд понять, что происходит. Должны настораживать: большое количество разных скобок, особенно вложенных, большое количество действий длина свыше 80 символов, разнесение на несколько строк.
Используйте одни и те же термины для одних и тех же сущностей в коде — domain-specific language. Выбирайте те термины, которыми вы думаете и используете в словесных объяснениях. Иногда используйте метафоры для названий. Придумывайте названия так, чтобы код читался, будто на естественном английском.