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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук


Карго-культ програмування — це стиль комп'ютерного програмування, що характеризується ритуальним включенням коду або програмних структур, які не мають ніякої реальної мети. Карго-культ програмування зазвичай притаманне програмісту, який не розуміє помилку, що вони намагаються вирішити чи очевидне рішення (порівняйте з налагодженням рушниці[en],складною магією[en]). Термін карго-культ програміст може застосовуватися коли некваліфікований програміст (або недосвідчений програміст з наявною проблемою) копіює частину програмного коду з одного місця в інше з малим або повністю відсутнім розумінням того, як він працює або чи він взагалі потрібний у новій позиції.

Карго-культ програмування може також відноситися до прийняття шаблону проектування програмного забезпечення або стилю кодування наосліп, не розуміючи причини вибору саме цього шаблону. Прикладами слугують додані непотрібні коментарі до очевидного коду, надмірне дотримання конвенцій конкретної парадигми програмування, або додавання коду видалення для об'єктів, які збирання сміття видалило б автоматично.

Походження[ред.ред. код]

Церемоніальний хрест культу карго Джона Фрума, острів Танна, Нові Гебриди (тепер Вануату), 1967 р.

Термін карго-культ, як ідіома, зазвичай відноситься до аборигенних релігій, які з'явилися у південній частині Тихого океану після Другої Світової війни. Основна мета цих груп полягала у будівництві складних макетів літаків і злітно-посадочних військових смуг, з надією призвати богоподібні літаки, які приносили чудовий вантаж під час війни. Використання терміну в комп'ютерному програмуванні скоріше за все походить від характеризації певних практик як науки карго-культу[ru] зробленої Річардом Фейнманом.

Карго-культ програмної інженерії[ред.ред. код]

Споріднений термін у програмній інженерії — карго-культ програмної інженерії придуманий Стівом Макконнеллом[ru].

Макконнелл так описує організації, спеціалізовані на програмних розробках, що намагаються наслідувати більш успішні будинки в цій сфері, зроблені слідуючи процесу розробки програмного забезпечення без його розуміння, або намагаючись наслідувати прихильно-орієнтований підхід до розробки, (у якому розробники програмного забезпечення присвячують багато часу і сил до того, як бачать успіх своїх проектів) доручаючи працювати додатковий, неоплачуваний час, коли у успішних компаніях це — побічний ефект доброї мотивації, а не вимога.

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

Література[ред.ред. код]

  • Ви, певно жартуете, Містер Фрейман!, Richard Feynman, W. W. Norton & Co, New York, 1985, ISBN 0-393-01921-7. Одна з глав — це розшифровка його робіт 1974 року, яка містила згадку терміну наука карго-культу[ru].
  • Cargo Cult Science, by Richard P. Feynman. Стаття базована на його роботі 1974 року з картинками, зберегла оригінальне тлумачення з журналу Engineering and Science, номер випуску 37:7, червень 1974. Оцифрована 20 червня, 2007 року.

Див. також[ред.ред. код]