Ответ
Синтаксическая сложность (Syntactic Complexity) — это метрика, оценивающая сложность кода на основе его структуры. Она учитывает количество и вложенность операторов, условий, циклов и других конструкций. Чем сложнее синтаксис, тем выше оценка.
Основные критерии:
- Вложенность — глубина блоков (if/for внутри других if/for).
- Количество операторов — общее число условий, циклов, вызовов функций.
- Длина функций/методов — чем длиннее, тем сложнее.
Пример высокой сложности:
function processData(data) {
if (data) {
for (let item of data) {
if (item.isValid) {
item.values.forEach(val => {
if (val > 0) {
console.log(val);
}
});
}
}
}
}Инструменты для оценки:
- ESLint (правила типа
complexity). - SonarQube.
- Плагины для IDE (например, CodeMetrics в VS Code).
Оптимизация:
- Разделение на мелкие функции.
- Использование guard clauses.
- Упрощение условий через ранние возвраты.