четверг, 27 октября 2022 г.

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

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





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





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





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





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





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





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

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





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





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





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

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





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





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





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

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





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





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

#Криптопедия

Комментариев нет:

Отправить комментарий

Новое обновление Aavegotchi направлено на повышение вовлеченности

Незаменяемые токены (NFT) покорили мир, а NFT-игры стали популярным и инновационным вариантом использования этой новой технологии.  Одним из...