0

Рассчитать цикломатическую сложность для JavaScript [закрыто]

56

Проблема с вопросом на Stack Overflow

Я столкнулся с проблемой, пытаясь найти инструменты для расчета цикломатической сложности в Javascript. Я использовал этот метрик раньше при работе с серверным кодом, и хотел бы применять его и к клиентскому Javascript, который я пишу.

Однако мой вопрос был закрыт как не соответствующий правилам Stack Overflow. В частности, мне рассказали, что вопросы, которые требуют рекомендации о книгах, инструментах или других ресурсах, считаются оффтопиком и могут приводить к появлению субъективных ответов и спама.

Может ли кто-то объяснить, как правильно сформулировать свой вопрос или предоставить информацию о том, где я могу найти подходящие инструменты для расчета цикломатической сложности в Javascript, не нарушая правил сайта?

3 ответ(ов)

0

Действительно, цикломатическая сложность рассчитывается на основе количества ключевых слов, таких как "if", "switch", "while", "for", "break" и т.д. Поэтому любые инструменты, работающие с C, подойдут для этой задачи, например, Sourcemonitor: http://www.campwoodsw.com/sourcemonitor.html.

Что касается JavaScript, то здесь важно помнить, что при попытках модульного разделения кода вы можете столкнуться с ухудшением производительности. Поэтому рекомендую подходить к этому с осторожностью 😉

Правка: Я действительно не понимаю, что происходит с этой реакцией! Я снова получаю минус, хотя в своем ответе предлагаю хороший инструмент для расчета цикломатической сложности в JavaScript, который действительно работает отлично.

Что касается второго утверждения, я лишь поделился мнением, основанным на опыте. Я не говорю "не модульно организовывайте свой JS-код", я лишь предлагаю "обращать внимание на это", поскольку часто это связано с компромиссом между скоростью. Когда я говорю о скорости, имеется в виду, что два типа замедления могут произойти: во время загрузки и во время исполнения (это важно на медленных устройствах, таких как PDA или смартфоны).

Инструменты вроде этого часто заставляют разработчиков писать больше кода, стремясь к снижению индекса, но в JavaScript больше кода может привести к замедлениям, и чрезмерное использование таких инструментов может быть вредным. Безусловно, эти инструменты могут дать подсказки о том, где ваш код можно улучшить, но вам необходимо уметь работать с инструментом и не полагаться на него вслепую.

Так что, если вы снова проголосуете против, пожалуйста, оставьте комментарий, объясняющий вашу позицию — обсуждение только выиграет от этого! Спасибо и извините за эмоции.

0

Вышла новая версия http://jshint.com, и в ней появился весьма полезный калькулятор цикломатической сложности. Это улучшение позволяет более точно анализировать сложность вашего кода и помогает выявлять потенциальные проблемные участки. Рекомендую попробовать!

0

Сейчас также доступен инструмент Yardstick: https://github.com/calmh/yardstick.

Он пытается вычислить цикломатическую сложность для идиоматического JavaScript, обрабатывая больше случаев, чем, например, jscheckstyle.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь