Лекция
Привет, сегодня поговорим про спагетти-код, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое спагетти-код , настоятельно рекомендую прочитать все из категории Разработка программного обеспечения и информационных систем.
спагетти-код — плохо спроектированная, слабо структурированная, запутанная и трудная для понимания программа, особенно содержащая много операторов GOTO(особенно переходов назад), исключений и других конструкций, ухудшающих структурированность . Самый распространенный антипаттерн программирования.
Спагетти-код назван так, потому что ход выполнения программы похож на миску спагетти, то есть извилистый и запутанный. Иногда называется «кенгуру-код» (kangaroo code) из-за множества инструкций jump.
В настоящее время термин применяется не только к случаям злоупотребления GOTO, но и к любому «многосвязному» коду, в котором один и тот же небольшой фрагмент исполняется в большом количестве различных ситуаций и выполняет очень много различных логических функций .
Спагетти-код обычно возникает:
Спагетти-код может быть отлажен и работать правильно и с высокой производительностью, но он крайне сложен в сопровождении и развитии . Об этом говорит сайт https://intellect.icu . Правка спагетти для добавления новой функциональности иногда несет такой огромный потенциал внесения новых ошибок, что рефакторинг (главное лекарство от спагетти) становится неизбежным.
Перечислим плюсы и минусы спагетти-подхода в проектировании.
Ниже приводится пример спагетти-кода на Бейсике, выполняющего простое действие — печать чисел от 1 до 10 и их квадратов. Реальные примеры спагетти-кода гораздо более сложные и создают большие проблемы при сопровождении программ.
10 i = 0 20 i = i + 1 30 IF i <= 10 THEN GOTO 70 40 IF i > 10 THEN GOTO 50 50 PRINT "Программа завершена." 60 END 70 PRINT i; " квадрат = "; i * i 80 GOTO 20
Тот же код, написанный в стиле структурного программирования:
FOR i = 1 TO 10 PRINT i; " квадрат = "; i * i NEXT i PRINT "Программа завершена."
Тот же код в функциональном стиле с использованием метода итерации, написанный на языке Ruby:
(1..10).each {|i| puts "#{i}\t квадрат = #{i**2}"} puts "Программа завершена."
По аналогии со «спагетти-кодом» программисты придумали еще несколько понятий, пока не общепринятых.
Надеюсь, эта статья про спагетти-код, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое спагетти-код и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем
Из статьи мы узнали кратко, но содержательно про спагетти-код
Комментарии
Оставить комментарий
Разработка программного обеспечения и информационных систем
Термины: Разработка программного обеспечения и информационных систем