Спагеті-код - погано спроектована, слабо структурована, заплутана і важка для розуміння програма. особливо що містить багато операторів GOTO (особливо переходів назад), винятків і інших конструкцій, що погіршують структурованість [1]. Найпоширеніший антипаттерн програмування.
Спагеті-код названий так, тому що хід виконання програми схожий на миску спагетті. тобто звивистий і заплутаний. Іноді називається «кенгуру-код» (kangaroo code) через безліч інструкцій jump.
В даний час термін застосовується не тільки до випадків зловживання GOTO, але і до будь-якого «багатозв'язна» коду, в якому один і той же невеликий фрагмент виповнюється у великій кількості різних ситуацій і виконує дуже багато різних логічних функцій [1].
Спагеті-код зазвичай виникає:
- від недосвідченості розробників;
- від серйозного пресингу по термінах, як встановленого керівництвом (наприклад, в прийнятій в компанії системі мотивації на роботу швидше), так і встановленого розробником самому собі (бажання все зробити найбільш швидким способом).
Спагеті-код може бути налагоджений і працювати правильно і з високою продуктивністю, але він вкрай складний в супроводі та розвитку [1]. Виправлення спагетті для додавання нових функцій іноді несе такий величезний потенціал внесення нових помилок, що рефакторинг (головні ліки від спагетті) стає неминучим.
Нижче наводиться приклад спагетті-коду на Бейсике. виконує просте дію - друк чисел від 1 до 10 і їх квадратів. Реальні приклади спагетті-коду набагато складніші і створюють великі проблеми при супроводі програм.
Дивитися що таке "Спагеті-код" в інших словниках:
Спагеті (значення) - Готові спагетті. Спагеті макаронний виріб з довгих і тонких ниток. У переносному сенсі, спагетті може позначати що то переплетених, складне або заплутане: багаторівневу транспортну розв'язку з безліччю довгих естакад, ... ... Вікіпедія
Роздування ПО - роздування програмного забезпечення (англ. Software bloat, bloatware) тенденція нових програм бути більше за обсягом і вимагати більше системних ресурсів в порівнянні зі старими. В результаті у багатьох людей з'являється відчуття, що зростання ... ... Вікіпедія
Функція для галочки - Роздування програмного забезпечення (англ. Software bloat, bloatware) тенденція нових програм бути більше за обсягом і вимагати більше системних ресурсів в порівнянні зі старими. В результаті у багатьох людей з'являється відчуття, що зростання ... ... Вікіпедія
Стандарт оформлення коду - (стандарт кодування, стиль програмування) (англ. Coding standards, coding convention або programming style) набір правил і угод, що використовуються при написанні вихідного коду на деякій мові програмування. Наявність загального ... ... Вікіпедія
Шаблони проектування GRASP - GRASP (англ. General Responsibility Assignment Software Patterns (загальні зразки розподілу обов'язків)) патерни, використовувані в об'єктно орієнтованому проектуванні для вирішення спільних завдань за призначенням обов'язків класів і об'єктів. В ... Вікіпедія
GRASP - (англ. General Responsibility Assignment Software Patterns загальні зразки розподілу обов'язків) патерни, використовувані в об'єктно орієнтованому проектуванні для вирішення спільних завдань за призначенням обов'язків класів і ... ... Вікіпедія