Википедия
Спагетти-код — плохо спроектированная, слабо структурированная, запутанная и трудная для понимания программа , особенно содержащая много операторов GOTO , исключений и других конструкций, ухудшающих структурированность . Самый распространённый антипаттерн программирования.
Спагетти-код назван так, потому что ход выполнения программы похож на миску спагетти , то есть извилистый и запутанный. Иногда называется « кенгуру -код» (kangaroo code) из-за множества инструкций « jump ».
В настоящее время термин применяется не только к случаям злоупотребления GOTO, но и к любому «многосвязному» коду, в котором один и тот же небольшой фрагмент исполняется в большом количестве различных ситуаций и выполняет очень много различных логических функций.
Спагетти-код обычно возникает:
- от неопытности разработчиков;
- от серьёзного прессинга по срокам, как установленного руководством .
Спагетти-код может быть отлажен и работать правильно и с высокой производительностью, но он крайне сложен в сопровождении и развитии. Правка спагетти для добавления новой функциональности иногда несет такой огромный потенциал внесения новых ошибок, что рефакторинг становится неизбежным.