Помните: интеллектуальная работа отличается от физической. Вы не можете измерить продуктивность временем, проведенным за компьютером. На самом деле чем дольше вы работаете, тем ниже становится ваша продуктивность, поскольку вы будете делать ошибки, на исправление которых потом придется тратить время. Никогда не работайте без перерывов.
Вам может казаться, что умственный труд — это преднамеренное мышление, но это не так. Психолог и лауреат Нобелевской премии Даниэль Канеман предлагает модель мышления, состоящую из двух систем: системы 1 и системы 2. «Система 1 интуитивная. Она отвечает за быстрое мышление, практически без усилий и без чувства произвольного контроля. Система 2 тяжелая, медленная. Она направляет внимание на требующие усилий умственные действия, включая сложные вычисления. Действия системы 2 часто связаны с субъективным опытом свободы действий, выбора и концентрации» [51]
«Цель разработки ПО — создание фрагментов или срезов, которые умещаются в человеческом сознании. Программное обеспечение продолжает расти, но возможности человеческого мозга ограничены, поэтому, чтобы продолжать вносить изменения, мы должны продолжать фрагментировать» [10]
Подсчитывайте все переменные, участвующие в реализации метода. Включая локальные переменные, параметры метода и поля класса. Следите за тем, чтобы это число было небольшим.
Отделяйте команды от запросов. Команды — это процедуры, имеющие побочные эффекты, а запросы — функции, которые возвращают данные. Каждый метод должен быть либо командой, либо запросом, но не тем и другим одновременно.
Вместо того чтобы отклонять пустое имя, вы можете преобразовать его в пустую строку. Это проектное решение следует закону Постела: будьте либеральны в том, что принимаете, и консервативны в том, что отправляете
Держите недетерминированные запросы и поведение с побочными эффектами близко к краю системы и создавайте сложную логику в виде чистых функций. Такой стиль программирования известен как функциональное ядро, императивная оболочка [11], так как программирование с использованием в основном чистых функций — это область функционального программирования.
запрос не может полагаться на генераторы случайных чисел, создание GUID, время суток, день месяца или любые другие данные из среды, а также содержимое файлов и БД