---
title: "Программирование по культу карго"
type: "antipattern"
slug: "cargo-cult-programming"
url: "http://localhost:3000/ru/antipatterns/cargo-cult-programming.md"
description: "Ритуальное включение ненужного компьютерного кода"
---
# Программирование по культу карго

> Ритуальное включение ненужного компьютерного кода

**Программирование по культу карго** — это стиль [программирования](https://en.wikipedia.org/wiki/Computer%5Fprogramming "Computer programming"), характеризующийся ритуальным включением кода или программных структур, которые не служат никакой реальной цели. Программирование по культу карго — симптом того, что программист не понимает ни ошибку, которую пытался решить, ни видимое решение (сравните [отладку наугад](https://en.wikipedia.org/wiki/Shotgun%5Fdebugging "Shotgun debugging") и [глубокую магию](https://en.wikipedia.org/wiki/Magic%5F%28programming%29 "Magic (programming)")). Термин _программист культа карго_ применим, когда кто-то, не имеющий опыта в решаемой задаче, [копирует некий программный код](https://en.wikipedia.org/wiki/Copy%5Fand%5Fpaste%5Fprogramming "Copy and paste programming") из одного места в другое, мало понимая, как он работает и нужен ли он вообще.

Программирование по культу карго также может означать практику слепого применения [паттерна проектирования](https://en.wikipedia.org/wiki/Software%5Fdesign%5Fpattern "Software design pattern") или стиля кодирования без понимания причин, стоящих за этим принципом проектирования. Примеры — добавление ненужных комментариев к самоочевидному коду, чрезмерно ревностное следование соглашениям [парадигмы программирования](https://en.wikipedia.org/wiki/Programming%5Fparadigm "Programming paradigm") или добавление кода удаления объектов, которые автоматически очищаются [сборщиком мусора](https://en.wikipedia.org/wiki/Garbage%5Fcollection%5F%28computer%5Fscience%29 "Garbage collection (computer science)").

## Этимология

[Культы карго](https://en.wikipedia.org/wiki/Cargo%5Fcult "Cargo cult") — это [милленаристские](https://en.wikipedia.org/wiki/Millenarian "Millenarian") движения, возникшие в [Меланезии](https://en.wikipedia.org/wiki/Melanesia "Melanesia") при колониальном правлении и вдохновившие [Ричарда Фейнмана](https://en.wikipedia.org/wiki/Richard%5FFeynman "Richard Feynman") ввести выражение [наука культа карго](https://en.wikipedia.org/wiki/Cargo%5Fcult%5Fscience "Cargo cult science"). По описанию Фейнмана, после окончания Второй мировой войны последователи верили, что воздушная доставка грузов возобновится, если они проведут надлежащие ритуалы, такие как строительство взлётно-посадочных полос, разведение рядом с ними костров и ношение наушников, вырезанных из дерева, сидя в построенных диспетчерских вышках. «Форма безупречна. Выглядит точно так же, как выглядело раньше. Но оно не работает».

Затем термин стал использоваться шире как метафора пустых ритуалов. Термин «программирование по культу карго» появился в версии 2.5.1 [Jargon File](https://en.wikipedia.org/wiki/Jargon%5FFile "Jargon File") — глоссария компьютерного сленга, выпущенного в январе 1991 года. Между тем самого термина «культ карго» в антропологии всё чаще избегают, поскольку он не отражает сложности меланезийских верований.

## Разработка ПО по культу карго

Родственным программированию по культу карго термином в [программной инженерии](https://en.wikipedia.org/wiki/Software%5Fengineering "Software engineering") является _разработка ПО по культу карго_, введённый [Стивом Макконнеллом](https://en.wikipedia.org/wiki/Steve%5FMcConnell "Steve McConnell").

Макконнелл описывает организации по разработке ПО, которые пытаются подражать более успешным компаниям-разработчикам — либо рабски следуя [процессу разработки ПО](https://en.wikipedia.org/wiki/Software%5Fdevelopment%5Fprocess "Software development process") без понимания стоящих за ним причин, либо пытаясь воспроизвести подход, ориентированный на самоотдачу (при котором разработчики ПО посвящают массу времени и сил тому, чтобы их проекты увенчались успехом), предписывая долгие рабочие часы и неоплачиваемые переработки, тогда как в успешных компаниях это могло бы быть скорее следствием высокой мотивации, чем причиной успеха.

В обоих случаях Макконнелл утверждает, что в конечном счёте именно компетентность определяет, удастся проект или провалится, независимо от выбранного подхода к разработке; более того, он заявляет, что некомпетентные «организации-самозванцы» (которые лишь имитируют _форму_ успешных организаций по разработке ПО) на самом деле занимаются тем, что он называет _разработкой ПО по культу карго_.
