Карго-культовое программирование

Материал из wikixw
Перейти к навигации Перейти к поиску

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

Cargo cult programming также может относиться к практике слепого применения шаблона проектирования или стиля кодирования без понимания причин, лежащих в основе этого принципа проектирования. Некоторые примеры - добавление ненужных комментариев к самоочевидному коду, чрезмерное следование соглашениям парадигмы программирования или добавление кода удаления объектов, которые автоматически собирает сборка мусора.

Навязчивые и избыточные проверки нулевых значений или проверка пустоты коллекции перед итерацией ее значений могут быть признаком программирования cargo cult. Такие навязчивые проверки делают код менее читабельным.

Происхождение[править]

Термин cargo cult как идиома первоначально относился к религиям аборигенов, которые выросли в Южной части Тихого океана после Второй мировой войны. Практика этих групп была сосредоточена на создании сложных макетов самолетов и военных посадочных полос в надежде вызвать богоподобных существ, прибывших на самолетах, которые привезли чудесный груз во время войны. В последние десятилетия антропология дистанцировалась от термина "груз". культ", который в настоящее время рассматривается как редуктивно применяемый ко многим сложным и разрозненным социальным и религиозным движениям, возникшим из—за стресса и травмы колониализма и стремившимся достичь гораздо более разнообразных и аморфных целей - таких вещей, как самоопределение, — чем материальный груз.

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

Cargo cult software engineering[править]

Родственным термином для программирования cargo cult в программной инженерии является cargo cult software engineering, введенный Стивом Макконнеллом[6].

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

В обоих случаях Макконнелл утверждает, что компетентность в конечном счете определяет успех или неудачу проекта, независимо от используемого подхода к разработке; кроме того, он утверждает, что некомпетентные "самозваные организации" (которые просто имитируют форму успешных организаций по разработке программного обеспечения) фактически занимаются тем, что он называет cargo cult software engineering.

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

Читать[править]

Вы, конечно, шутите, мистер Фейнман!Ричард Фейнман, W. W. Norton & Co, Нью-Йорк, 1985, 0-393-01921-7 ISBN. Одна из глав представляет собой стенограмму вступительной речи Caltech 1974 года, которая содержала чеканку "Cargo cult science"

Пруф[править]

calteches.library.caltech.edu/51/2/CargoCult.pdf