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

Чтение книги онлайн.

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

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

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

стильно и элегантно.

      Используются исключения вместо кодов ошибок.

      Начинать с написания команды try-catch-finally для кода, способного вызывать исключение.

      Тип исключения сужается до реально инициируемого.

      Блоки try должны напоминать транзакции.

      Использовать непроверямые исключения.

      С исключениями передавать содержательные сообщения об ошибках.

      Из сведений об исключении должно быть понятно, с какой целью выполнялась операция.

      Классы исключений определены в контексте потребностей вызывающей стороны.

      Инкапсулированы вызовы сторонних API.

      Для обработки особых случаев использовать паттерн особый случай.

      Вместо null выдается исключение или особый случай.

      Для API, возвращающего null, – делать обертки.

      Не возвращать null из методов.

      Не передавать null при вызове методов.

      Запрещать передачу null по умолчанию.

      Чистый код должен быть надежным.

      Вместо приведения типа контейнера лучше использовать параметризованные контейнеры.

      Ограничить передачу граничных интерфейсов по платформе (можно инкапсулировать).

      Для стороннего кода писать тесты.

      Сторонний код тестировать в рамках понимания его работы.

      Конструкторы по умолчанию должны иметь конфигурацию.

      Писать учебные тесты, граничные тесты.

      Можно заранее определять интерфейсы, затем писать паттерн-адаптер к готовым.

      Для граничного кода необходимо четкое разделение сторон и тесты, определяющие ожидания пользователя.

      Количество обращений к границам стороннего кода сводится к минимуму.

      Законы TDD:

      – не пишите код продукта, пока не напишете отказной модульный тест;

      – не пишите модульный тест в объеме большем, чем необходимо для отказа (невозможность компиляции является отказом);

      – не пишите код продукта в объеме большем, чем необходимо для прохождения текущего отказного теста.

      Тесты не уступают в качестве коду продукта.

      Тесты развиваются вместе с продуктом.

      Модульные тесты обеспечивают гибкость, удобство сопровождения и возможность повторного использования кода.

      Без тестов любое изменение становится потенциальной ошибкой.

      Некачественные тесты приводят к некачественному коду продукта.

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

      В тестах использовать паттерн «построение – операции – проверка».

      Тесты не делают ничего лишнего, в них используются только действительно необходимые типы

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