В среднем - я думаю, что метрики программного обеспечения являются сомнительной идеей - они обычно отвлекают вас от действительно важного вопроса, а именно: «Какую ценность мы предоставляем клиенту?».
Сказав, чтоЯ признаю, что в некоторых контекстах они могут быть неизбежным злом и иногда могут дать вам полезную информацию о вашей кодовой базе.
Итак, вот некоторые из них, которые могут относиться к Clojure.
- Количество определений верхнего уровня (возможно, выраженное как отношение к общему количеству символов?)
- Java-соединение:% символов, связанных с Java-взаимодействием (new, ClassName., .SomeMethod и т. Д.) - в идеале сохранить связьограничивается определенными модулями, отвечающими за взаимодействие Java, то есть должно быть очень низким% везде, кроме библиотек, которые управляют взаимодействием.
- Средний максимальный уровень вложенности функций defns (я полагаю, 5 хорошо, 10+ плохо ??)
- Плотность макроса:% форм, требующих расширения макроса
- % функций с последовательностями документов
- % символовПараметры ls или функции, определенные с помощью подсказок типа
- Средний размер анонимных функций (вероятно, они должны быть небольшими!)
- % функций в используемом clojure.core (дает некоторое представление о «словарном диапазоне»"и сложность кода)
- (спасибо nickik!) количество созданных ref-типов (динамические переменные, atom, ref и agent) - важно, если вы хотите тщательно контролировать изменяемое состояние!
ps, если вы заработаете эту работу, было бы действительно интересно увидеть различия в результатах в разных проектах clojure с открытым исходным кодом!