Годная обзорная статья про метрики кода (всякие там цикломатические сложности и т.п.). Статья не претендует на полноту, а является скорее призывом к осознанному подходу в этой области.

Некоторые тезисы:

  • Код сам по себе слабо влияет на “читаемость” — другие факторы, возможно, более важны.
  • Метрики кода коррелируют с его сложностью, но довольно слабо.
  • Одно из исследований показало, что ни одна из 121 метрик сложности кода не отражает сама по себе “простоты”/“понимаемости” кода.
  • Процессные метрики лучше (и правда, если ваши процессы говеные, то качество кода не спасет разработку).
  • Паттерны имеют большое значение: принцип наименьшего удивления, безобразно, но единообразно и т.п.
  • Сложность/понятность кода зависит от контекста™ (причем в самом широком смысле).
  • Неправильные имена переменных и типов хуже отсутствия имен. При этом “неправильные” имена переменных для одного разраба могут быть “правильными” для другого.
  • Существующие метрики основаны на интуиции, а не на науке/нормальных эмпирических исследованиях.