> -- Валерий Лаптев писал(а):
> Память и время - это внешнее качество ПО. А есть еще и внутренее... Признаки плохого кода существуют. Одна из первых попыток их как-то обозначить - "запахи" плохого кода в Рефакторинге. Так что обмеривать - возможно. Только это будет нечеткая система, естественно.

"Обмеры" дадут отклонения от усредненного эталона. А если задача сильно отличается от "средней", то "обмеры" покажут, что код "плохой", хотя на самом деле он может быть качественным. Это похоже на критерии женской красоты. Нравится стандартное, среднее по пропорциям и с качественным "материалом" (кожей, волосами, зубами и т.п.). Потом окажется, что красотка глупая, ленивая, эгоистичная, жадная, злобная, скандальная, беспринципная, неряшливая и безвольная. Но "метрики" этого не обнаружили.

Любая гипертрофированная по сравнению с усредненным эталоном часть лица делает его некрасивым - без учета функциональности в новых условиях. Попытка же оценить качество программы по ее "материалам" просто приводит к тривиальному выводу, что необходимо пользоваться "безопасными" подмножествами правильно выбранных языков и соблюдать правила по стилю. Хороший инструментарий (семантический редактор) автоматически улучшит качество "материалов" до теоретического максимума. А вот качество программной архитектуры не оценить никакими внутренними метриками.