Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Спагетти-код кратко

Лекция



Привет, сегодня поговорим про спагетти-код, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое спагетти-код , настоятельно рекомендую прочитать все из категории Разработка программного обеспечения и информационных систем.

спагетти-код — плохо спроектированная, слабо структурированная, запутанная и трудная для понимания программа, особенно содержащая много операторов GOTO(особенно переходов назад), исключений и других конструкций, ухудшающих структурированность . Самый распространенный антипаттерн программирования.

Спагетти-код назван так, потому что ход выполнения программы похож на миску спагетти, то есть извилистый и запутанный. Иногда называется «кенгуру-код» (kangaroo code) из-за множества инструкций jump.

В настоящее время термин применяется не только к случаям злоупотребления GOTO, но и к любому «многосвязному» коду, в котором один и тот же небольшой фрагмент исполняется в большом количестве различных ситуаций и выполняет очень много различных логических функций .

Спагетти-код обычно возникает:

  • от неопытности разработчиков;
  • от серьезного прессинга по срокам, как установленного руководством (например, в принятой в компании системе мотивации на работу быстрее), так и установленного разработчиком самому себе (желание все сделать наиболее быстрым способом).

Спагетти-код может быть отлажен и работать правильно и с высокой производительностью, но он крайне сложен в сопровождении и развитии . Об этом говорит сайт https://intellect.icu . Правка спагетти для добавления новой функциональности иногда несет такой огромный потенциал внесения новых ошибок, что рефакторинг (главное лекарство от спагетти) становится неизбежным.

Спагетти-код


Перечислим плюсы и минусы спагетти-подхода в проектировании.

  • + написание любой функции в любой точке проекта;
  • — адаптирование нового кода — с пересмотром всех использований его по всему проекту (впрочем, как и в любом проекте, но если код организован, его легче читать).
  • + низкий порог вхождения, чтобы начать писать спагетти-код;
  • — высокий порог понимания чужого спагетти-кода (но есть масса техник в IDE);
  • + невероятная гибкость и «пантеичность» спагетти-подхода;
  • — сложность в построении больших систем на основе этой методологии.

Пример

Ниже приводится пример спагетти-кода на Бейсике, выполняющего простое действие — печать чисел от 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 "Программа завершена."

Связанные понятия

По аналогии со «спагетти-кодом» программисты придумали еще несколько понятий, пока не общепринятых.

  • Пахлава-код или лазанья-код — код, в котором слишком много (для данной задачи) слоев абстракции
  • Катамари-код — код, некогда чистый, но в процессе развития облеплявшийся функциональностью, как «катамари» из игры для Playstation.

Вау!! 😲 Ты еще не читал? Это зря!

Надеюсь, эта статья про спагетти-код, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое спагетти-код и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем

Из статьи мы узнали кратко, но содержательно про спагетти-код
создано: 2015-01-05
обновлено: 2022-02-06
132611



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Разработка программного обеспечения и информационных систем

Термины: Разработка программного обеспечения и информационных систем