Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

В компьютерных программах [ править ]

Этот термин был популяризирован в одноименной статье Брайана Фута и Джозефа Йодера 1997 года, в которой этот термин определяется:

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

Общая структура системы, возможно, никогда не была четко определена.

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

-  Брайан Фут и Джозеф Йодер, Большой шар грязи. Четвертая конференция по шаблонным языкам программ (PLoP '97 / EuroPLoP '97) Монтичелло, Иллинойс, сентябрь 1997 г.

Фут и Йодер считали Брайана Марика создателем термина «большой комок грязи» для такого рода архитектуры. [1]

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

Что касается Лиспа [ править ]

При обсуждении языка программирования Lisp термин большой комок грязи используется по-другому, в данном случае для описания гибкости системы Lisp. В Lisp обычно можно:

В результате слияния этих функций Lisp чрезвычайно гибок, даже до такой степени, что сама языковая реализация может быть полностью переписана во время выполнения (т. Е. Рефлексивное метапрограммирование ), что может привести к тому, что системы Lisp со временем станут "мутными" из-за гибкости и легкости, с которой они могут расширяться и развиваться за счет простого использования. Металингвистическая абстракция, выдающаяся характеристика Lisp, также позволяет программистам разрабатывать совершенно новые и своеобразные концептуальные словари для описания процессов и функций, через которые их программы проходят при решении проблемной области, и может, в сочетании с плохой документацией по программному обеспечению, привести к работающим системам Lisp. довольно хорошо и действительно довольно хорошо структурированы с точки зрения дизайна, но понятны только исходным кодировщикам или любому, кто желает потратить время на просеивание слоев высокорекурсивного кода.

Считается, что Джоэл Моисей придумал фразу в 1970-х годах: [2]

APL похож на красивый бриллиант - безупречный, красиво симметричный. Но добавить к этому ничего нельзя. Если вы попытаетесь приклеить другой бриллиант, вы не получите бриллиант большего размера. Лисп похож на комок грязи. Добавьте еще, и это все еще комок грязи - он все еще выглядит как Лисп.

Моисей категорически отрицает это, утверждая, что вместо этого он назвал Лисп мешком с фасолью, потому что он всегда возвращается к своей первоначальной форме. [3]

См. Также [ править ]

  • Шаблон дизайна
  • Код спагетти
  • Технический долг

Заметки [ править ]

  1. ^ Фут, Брайан; Йодер, Джозеф (26 июня 1999 г.). «Большой шар грязи» . laputan.org . Проверено 14 апреля 2019 года . CS1 maint: обескураженный параметр ( ссылка )
  2. ^ Ричард П. Габриэль и Гай Л. Стил (1996). «Эволюция Лиспа» . ACM История языков программирования - II . 28 (3): 233–330. DOI : 10.1145 / 155360.155373 .
  3. ^ Томас Дж. Бергин и Ричард Дж. Гибсон (1996). «Дополнительные материалы от HOPL II» . Уведомления ACM SIGPLAN : 9–20. DOI : 10.1145 / 240964.1198155 .

Ссылки [ править ]

  • Гай Л. Стил младший и Ричард П. Габриэль Эволюция Лиспа [1] , примечание к ссылке 128
  • Брайан Фут и Джозеф Йодер, Четвертая конференция Big Ball of Mud, посвященная языкам шаблонов программ (PLoP '97 / EuroPLoP '97), Монтичелло, Иллинойс, сентябрь 1997 г.