Хорошо - у меня есть кто-то, кого я работаю с тем, кто записал что-то как это
if()
if()
if()
if()
if()
Мне не нравится это!!
Если существует десять различных булевых флагов, сколько комбинации там?
10 факториалов?
Я пытаюсь объяснить, почему это плохо
Наиболее хорошими статическими кодовыми анализаторами имеют максимальный уровень отступа на эту точку зрения. Становится очень трудно обрабатывать все логические случаи с таким высоким уровнем вложенности.
Это типичная ошибка новичков проверки всех условий ошибок в одном большом количестве функции?
Если так, вы можете получить автора кода, чтобы изменить его в последовательность, если утверждения а не эта сильно вложенная конструкция.
if(error1) {
/* report error 1 and exit */
}
if(error2) {
/* report error 2 and exit */
}
if(error3) {
/* report error 3 and exit */
}
...
делает его намного проще проверить код, а также предоставлять адаптированную информацию о конкретной ошибке, а не в одном универсальном операторе «что-то плохое».
Наиболее хорошими статическими анализаторами кода имеют максимальный уровень отступа на эту точку зрения. Становится очень трудно обрабатывать все логические случаи с таким высоким уровнем вложенности.
Это типичная ошибка Newbie проверить все условия ошибок в одном большом количестве большого количества функции?
Если это так, вы можете получить автор кода, чтобы изменить его в последовательность, если а не эта сильно вложенная конструкция.
if(error1) {
/* report error 1 and exit */
}
if(error2) {
/* report error 2 and exit */
}
if(error3) {
/* report error 3 and exit */
}
...
делает его намного проще проверить код, а также для предоставления индивидуальной информации о конкретной ошибке, а не в одном универсальном операторе «что-то плохое».
-121--4950708-Не более 2-10 = 1024 путей (максимум достигается, если условия полностью независимы)
, имея множество путей в одном методе, называемом высокой сложностью. Эта высокая сложность воздействует на удовольствие и оправданность. Очевидно, что сложные методы более подвержены ошибкам и сложнее для тестирования и обслуживания.
Сложность не обязательно является проблемой: некоторые решения проблем имеют присущую сложность, которая не может быть удалена. Другими словами, некоторые проблемы окончательно сложно найти решения. В этих случаях вы можете уменьшить локальную сложность, расщепляя сложные методы в меньших (это не уменьшает глобальную сложность, очевидно).
В других случаях удалите дополнительную сложность: найдите более простое решение (легко сказать, я знаю); -)
2 в 10-м степени = 1024
Я пытаюсь объяснить, почему это плохо
, это может не обязательно быть плохим. Каждое состояние отключает половину случаев. Если вы знаете, вам нужно только сделать что-то, когда первое условие верно, вы уже падаете 512 случаев. Это точка этих проверок.
Однако вы можете переписать его, чтобы лучше выглядеть и более читаемо:
if(c1 && c2 && c3 && c4 && c5)