Полезные конспекты книг и авторские заметки по информационным технологиям. Без формул. Алексей Сергеевич Лот

Читать онлайн.
Название Полезные конспекты книг и авторские заметки по информационным технологиям. Без формул
Автор произведения Алексей Сергеевич Лот
Жанр
Серия
Издательство
Год выпуска 0
isbn 9785006032576



Скачать книгу

имена из пространства задачи (клиентские): если нет подходящего программиста, узнаются у специалиста в предметной области.

      Разделение концепций из пространств задачи и решения.

      Несодержательные сами по себе имена помещаются в определенный контекст для читателя кода – классы, функции и пространства имен с правильно выбранными названиями.

      В крайнем случае контекст уточняется префиксом.

      Контекст не должен вычисляться.

      Функции разделяются на меньшие смысловые фрагменты.

      Нет избыточности контекста.

      Нет работы против собственного инструментария.

      Короткие имена лучше длинных, если только их смысл понятен читателю кода.

      Имена экземпляров более точные.

      Развивать описательные навыки и единый культурный фон.

      Не должно быть опасения возражений при переименовании.

      Функции:

      Первый уровень структуризации.

      Длина не избыточна.

      Не содержит повторяющихся фрагментов кода.

      Один уровень абстракции.

      Функции компактны.

      Функции еще компактнее.

      Функции желательно не более 20 строк.

      Все функции предельно очевидны.

      Блоки в командах if, else, while и так далее должны состоять из 1 строки, в которой обычно – вызов функции.

      Функции не содержат вложенных структур.

      Не более 1—2 отступов.

      Функция должна выполнять только одну операцию. Она должна выполнять ее хорошо. И ничего другого она делать не должна.

      Если функция выполняет только те действия, которые находятся на одом уровне под объявленным именем функции, то эта функция выполняет одну операцию.

      Функции пишутся прежде всего для разложения более крупной концепции (иначе говоря, имени функции) на последовательность действий в следующем уровне абстракции.

      Чтобы определить, что функция выполняет более 1 операции, надо попробовать извлечь из нее другую функцию, которая бы не являлась простой переформулировкой реализации.

      Функцию, выполняющую только одну операцию, невозможно осмысленно разделить на секции.

      Все команды функции находятся на одном уровне абстракции.

      За каждой функцией должны следовать функции следующего уровня абстракции.

      Switch, длинные цепочки if-else скрывать в низкоуровневом классе и не дублировать в коде (использовать полиморфизм).

      Принцип единой ответственности (single responsibility principle).

      Принцип открытости-закрытости (open-closed principle).

      Программа не содержит неограниченного количества других функций с аналогичной структурой (можно использовать абстрактную фабрику).

      Имя точно описывает, что делает функция.

      Длинное имя функции лучше короткого невразумительного.

      Не бойтесь расходовать время на выбор имени функции.

      В именах функций использовать те же словосочетания, глаголы и существительные, что и в модулях.

      В идеальном