Спагетти-код обладает специфическими характеристиками, которые отличают его от простого плохого кода. Спагетти чрезвычайно сложны и неструктурированы, поэтому трудно следить за ходом процесса через программу. Это все равно что пытаться распутать лапшу в миске с болоньезом .
Вот почему операторы GOTO
(ужасное слово!) Часто цитируются в этом контексте: оператор GOTO
передает управление в другое произвольно определенное место в базе кода. Большинство языков программирования имеют команды, которые могут использоваться для имитации поведения стиля goto
; например, использование исключений для реализации обычной бизнес-логики, а не для обработки ошибок.
Глобальные переменные вносят вклад в код спагетти, потому что значения назначаются вне области действия текущего программного модуля. Это может затруднить определение того, где в базе кода для переменной задано заданное значение (или действительно ли оно установлено для какого-либо значения вообще).
Кстати, использование операторов goto
не означает, что программа - это спагетти. Совершенно возможно написать четкий, хорошо структурированный код, используя goto
, просто требуется много самодисциплины, чтобы не злоупотреблять его гибкостью. Современные языки программирования сделали его использование ненужным и нежелательным.