Індуський програміст

Матеріал з Драматика
Перейти до навігації Перейти до пошуку

Допиши кілька слів зі свого досвіду
Ми дописуємо Драматику разом і ця стаття потребує твоїх думок для повноти. Натисни "редагувати" згори сторінки чи розділу.

Файл:Indian programmer.png
Якось так

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

Здебільшого індуським кодом називають код низької якості, тобто використання простих "копіювати-вставити", "if" та ігнорування оптимізації, через це простий цикл можна розтягнути хоч на 1000 рядків. Навіть якщо він написаний руками росіянина або єгиптянином.

Звідки назва

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

Підвиди

  • Спагеті-код (іноді кенгуру-код) — погано спроектований, слабко структурований, заплутаний та складний для розуміння код, особливо якщо в ньому багато переходів у задану точку програми без перевірки виконання будь-яких умов, виключень та інших конструкцій, що погіршують структурованість. Названий так через те, що нагадує тарілку зі спагеті, тобто довгий та заплутаний.
  • Китайський код — спосіб програмування, який порушує принцип "не повторюй сам себе". Китайський кодер ігноруватиме цикли та будь-які процедури, але використовуватиме технологію "copy-paste" постійно. Такий підхід значно збільшить об'єм програми, але, на відміну від індуського коду, вражатиме своєю передбачуваністю й брутальністю, як і вся китайська інженерія цілком. Плюс від такого кодерства в тому, що його можливо оптимізувати і навіть прочитати, що не скажеш про індусів, але якщо китайський кодер напише процедуру, то ймовірність того, що вона буде корисною, прямує до нуля.
  • Делфішколокод. Любов новачків до бидлокодерської RAD Delphi створила явище нагромадження оброблення подій на Button1Click, Form1 і т.д. Оскільки RAD сама генерує імена методів, подій, перемін, то школяр рідко використовує перетинку між вухами, і в результаті маємо щось подібне на це.
  • Overengineering — метод ускладнення собі життя написанням простих програм складними способами. Просто для понтів та/або пафосу. Основна суть в тому, щоб використовувати якомога більше методів, конструкцій і прийомів програмування (чим і відрізняється від індуського коду). Замовник, який далекий від програмування, може побачити ледь не сам код Матриці й нічого не зрозуміє, але може принести більше грошей розробнику, тому й profit. Цікаво, що такий метод виник давно, і не тільки в програмуванні.

Див. також

Посилання