Разработка обслуживаемых программ на языке С#

Прочёл и рекомендую к прочтению книгу Джуста Виссера “Разработка обслуживаемых программ на языке С#”. Книга содержит набор критериев, выработанных консультантами Software Improvement Group после анализа сотен реальных систем. Авторами были сформулированы 10 простых рекомендаций, позволяющих писать программное обеспечение, которое легко поддерживать и развивать.

Перечилю эти 10 рекомендаций/критериев:

  1. Короткие блоки кода (max. 15 строк кода). Короткие блоки проще понять, тестировать и переиспользовать

  2. Простые блоки кода (max. 4 точки ветвления). Это упрощает модификацию и тестирование

  3. Не дублируйте код. При дублировании исправлять придётся в нескольких местах.

  4. Уменьшайте размеры интерфейсов (передавайте в блоки кода max. 4 параметра). Объединяйте параметры в объекты. Небольшие размеры интерфесов упростят понимание и переиспользование кода.

  5. Разделяйте задачи на модули (большие модули образуют тесные связи). Разделяйте сферы ответственности модулей и скрывайте детали реализации за интерфейсами. Такой код проще модифицировать и контролировать.

  6. Избегайте тесной связи между элементами архитектуры. Минифицируйте объем экспортируемого кода, доступного в других компонентах.

  7. Сбалансируйте архитектуру компонентов (min 6, max 12, optimal 9 компонентов одинакового размера). Проще искать код и обеспечить изоляцию.

  8. Следите за размером базы кода. Удаляйте лишний код. Предотвращайте разрастание кода. Небольшой размер продукта, проекта, команды - важный фактор успеха.

  9. Автоматизируйте тестирование. Это делает разработку предсказуемой и менее рискованной.

  10. Пишите чистый код. Не оставляйте грязи. Обслуживать чистый код намного проще.

Кроме примеров кода, книга содержит типичные возражения по каждой рекомендации/критерию. Среди них встретились старые знакомые, кочующие из проекта в проект. Большое спасибо авторам. Книга читается легко, имеет небольшой размер и хорошо структурирована.