Что такое спагетти-код (Spaghetti Code)?

ОтCripta today

Окт 28, 2022

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

Что такое спагетти-код (Spaghetti Code)?

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

Обычно это приводит к несколько незапланированным, запутанным структурам кода, в которых операторы GOTO предпочтительнее программных конструкций, в результате чего программа становится непригодной для сопровождения в долгосрочной перспективе. Для предприятий создание программы только для того, чтобы ее невозможно было поддерживать после того, как годы работы (и деньги) ушли на стоимость проекта, ИТ-менеджеров и другие ресурсы. Кроме того, программисты разочаровываются, тратя часы на кодирование инфраструктуры только для того, чтобы что-то сломалось, а затем им приходится просеивать годы работы, часто управляемой разными разработчиками, чтобы определить проблему, если они вообще могут ее решить. .

По этой причине спагетти-код считается неприятностью для разработчиков и ИТ-менеджеров, а корпоративным предприятиям, которым приходится управлять своими ресурсами, следует полностью избегать его использования.

История спагетти-кода

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

В 1981 году в сатире о кодировании возникла идея о том , что основатели IBM, должно быть, увлекались спагетти-кодом из-за того, как они разрабатывали FORTRAN. В книге Ричарда Хэмминга « Искусство заниматься наукой и инженерией: учиться — учиться » он сказал:

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

«Таким образом, программа вскоре превратилась в последовательность прыжков управления в странные места. Когда, как это почти всегда бывает, в исправлениях были ошибки, вы использовали тот же трюк снова, используя какое-то другое доступное место. В результате путь управления программой через хранилище вскоре принял вид банки спагетти. Почему бы просто не вставить их в строку инструкций? Потому что тогда вам пришлось бы пройтись по всей программе и изменить все адреса, которые относятся к любой из перемещенных инструкций! Что угодно, только не это!»

Как это оказывается в вашей инфраструктуре?

Спагетти-программирование не является чистым или структурированным и идет вразрез с масштабами и моделями, составленными корпоративным бизнесом; так как он туда попадает? Спагетти-код возникает при соблюдении определенных условий:

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

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

Спагетти-код: как его избежать

Чтобы не запутаться в неэффективном спагетти-коде, программисты должны:

  • Будьте усердны: прежде всего, усердие и внимание к деталям являются ключевыми. Разработчик должен быть сосредоточен на создании наилучшей архитектуры для своего проекта и не должен спешить с архитектурой.
  • Частое модульное тестирование: выполняя регулярные модульные тесты, вы можете снизить вероятность появления спагетти-кода.
  • Дважды проверьте своих программистов: дополнительная пара глаз может помочь, если вы столкнетесь со спагетти-кодом, немедленно обратитесь к нему и попросите изменить его.
  • Используйте легкие фреймворки: в 2020 году вы можете внедрить несколько простых и легких фреймворков. Сохраняя структуру оптимизированной, вы настраиваете себя на более простые решения.
  • Внедрение слоев. На практике слои помогают легче исправлять спагетти-код, обращаясь к одному слою, а не ко всей программе.

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

Есть несколько связанных типов кода, которые вы можете просмотреть для дополнительного изучения:

  • Код равиоли (Ravioli code): это термин для обозначения ошибок в объектно-ориентированном коде, которые возникают, когда код легко понять в классе, но не в контексте всего проекта.
  • Код лазаньи (Lasagna code): это проблема, которая может возникнуть, когда вы используете слои, чтобы избежать спагетти-кода, и слои настолько взаимозависимы друг от друга, что один разрыв в слое влияет на весь проект.
  • Код для пиццы (Pizza code). Если архитектура кода слишком плоская, ее называют кодом для пиццы.

Этот материал предназначен только для информационных целей и не предназначен для предоставления юридических, налоговых, финансовых или инвестиционных рекомендаций. Получателям следует проконсультироваться со своими советниками, прежде чем принимать подобные решения. Cripta Today не несет ответственности за любое принятое решение или любые другие действия или бездействие в связи с использованием Получателем этого материала.

Добавить комментарий