- Joost Visser. Building Maintainable Software (C# Edition)
- Дж. Виссер. Разработка обслуживаемых программ на языке C# ISO 25010:2011 http://docs.cntd.ru/document/1200121069 https://bettercodehub.com
- Рекомендации должны быть простыми.
- Применение рекомендаций с самого начала и значимость вклада каждого разработчика.
- Не все пути отступления от рекомендаций дают одинаковый отрицательный эффект.
- Заблуждения 4.1 Обслуживаемость зависит от языка программирования 4.2 Обслуживаемость зависит от прикладной области 4.3 Обслуживаемость гарантирует отсутствие ошибок 4.3 Обслуживаемость оценивается одной из двух альтернатив Эффективность и результативность исправления ошибок
- Рейтинг обслуживаемости
1.1. Метод извлечения. 1.2. Замена методов объектами. Типичные возражения:
- Увеличение кол-ва блоков кода плохо сказывается на производительности
- Разделение кода ухудшает читаемость
- Этот блок кода невозможно разделить (SQL)
- Разделение блоков кода не даёт заметных преимушеств
Блок не должен превышать 4 точек ветвления. Означает минимальное кол-во тестов блока. 2.1. Добавление структуры, например Dictionary. 2.2. Модель замены условий полиморфизмом, с использованием интерфейсов. Мотивация: 2.1 Легче изменять 2.2 Проще тестировать Типичные возражения:
- Высокая сложность неизбежна
- Разделение методов не уменьшает сложности