Індуський програміст: відмінності між версіями

Матеріал з Енциклопедія Драматика
Перейти до навігації Перейти до пошуку
Немає опису редагування
м (Зняв плашку Restored.)
Рядок 1: Рядок 1:
{{Restore|Індуський_програміст|}}
{{Недопис}}
 
[[Файл:Indian programmer.png|thumb|Якось так]]
Індуський програміст - програміст який пише індуський код, а індуський код в свою чергу - це кривий та великого обсягу програмний код, який якимось дивним чином працює. Від бидлокоду відрізняється тим, що написаний найбільш неочікуваним способом, бо бидлокод хоч трішки очевидний і зрозумілий.
'''Індуський програміст''' — програміст, який пише індуський код кривий і великий за обсягу програмний код, який якимось дивним чином працює. Від [[Бидлокодер|бидлокоду]] відрізняється тим, що написаний найбільш неочікуваним способом, бо бидлокод хоч трішки очевидний і зрозумілий.
 
Здебільшого індуським кодом називають код низької якості, тобто використання простих "копіювати-вставити, if" та ігнорування оптимізації, через це простий цикл можна розтягнути хоч на 1000 рядків.


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


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


== Підвиди ==
== Підвиди ==
'''Спагеті-код'''
* '''Спагеті-код''' (іноді ''кенгуру-код'') погано спроектований, слабко структурований, заплутаний та складний для розуміння код, особливо якщо в ньому багато переходів у задану точку програми без перевірки виконання будь-яких умов, виключень та інших конструкцій, що погіршують структурованість. Названий так через те, що нагадує тарілку зі спагеті, тобто довгий та заплутаний.
 
* '''Китайський код''' — спосіб програмування, який порушує принцип "не повторюй сам себе". Китайський кодер ігноруватиме цикли та будь-які процедури, але використовуватиме технологію "copy-paste" постійно. Такий підхід значно збільшить об'єм програми, але, на відмінну від індуського коду, вражатиме своєю передбачуваністю й брутальністю, як і вся китайська інженерія цілком. Плюс від такого кодерства в тому, що його можливо оптимізувати і навіть прочитати, що не скажеш про індусів, але якщо китайський кодер напише процедуру, то ймовірність того, що вона буде корисною, прямує до нуля.
Спагеті-код (іноді кенгуру-код) - погано спроектований, слабко структурований, заплутаний та складний для розуміння код, особливо якщо в ньому багато переходів в задану точку програми без перевірки виконання будь-яких умов, виключень та і інших конструкцій, що погіршують структурованість. Названий так, тому що схожий на тарілку зі спагеті, тобто довгий та заплутаний.
* '''Делфішколокод.''' Любов [[Школота|новачків]] до бидлокодерської [https://uk.wikipedia.org/wiki/Швидка_розробка_програмного_забезпеченняF RAD] [[Delphi]] створила явище нагромадження оброблення подій на Button1Click, Form1 і т.д. Оскільки RAD сама генерує імена методів, подій, перемін, то школяр рідко використовує перетинку між вухами, і в результаті маємо щось подібне на [http://govnokod.ru/4273 це.]
 
*'''Overengineering''' — метод ускладнення собі життя написанням простих програм складними способами. Просто для понтів та/або пафосу. Основна суть в тому, щоб використовувати якомога більше методів, конструкцій і прийомів програмування (чим і відрізняється від індуського коду). Замовник, який далекий від програмування, може побачити ледь не сам код Матриці й нічого не зрозуміє, але може принести більше грошей розробнику, тому й [[profit]]. Цікаво, що такий метод виник давно, [http://en.wikipedia.org/wiki/Rube_Goldberg_machine і не тільки в програмуванні.]
'''Китайський код'''
 
Спосіб програмування, який порушує принцип "не повторюй сам себе". Китайський кодер ігноруватиме цикли та будь-які процедури, але використовуватиме технологію "copy-paste" постійно. Такий підхід значно збільшить об'єм програми, але на відмінну від індуського коду буде вражати своєю передбачуваністю і брутальністю, як і вся китайська інженерія цілком. Плюси від такого кодерства, що його можливо оптимізувати і навіть прочитати, що не скажеш про індусів, але якщо китайський кодер напише процедуру, то ймовірність того, що вона буде корисною прямує до нуля.
 
'''Делфішколокод'''


Любов новачків до бидлокодерської RAD Delphi створила явище нагромадження оброблення подій на Button1Click, Form1 і т. д. Оскільки RAD сама генерує імена методів, подій, перемін, то школяр рідко використовує перетинку між вухами, і в результаті маємо щось подібне на це [http://govnokod.ru/4273 1].
== Див. також ==
* [[Бидлокодер]]


'''Overengineering'''
== Посилання ==
* [https://web.archive.org/web/20150418234053/http://dramatica.org.ua/Індуський_програміст Архівна версія статті]


Метод ускладнення собі життя написання простих програм складними способами. Просто для понтів та/або пафосу. Основна суть в тому, щоб використовувати якомога більше методів, конструкцій і прийомів програмування (чим і відрізняється від індуського коду). Замовник, який далекий від програмування, може побачити ледь не сам код Матриці і нічого не зрозуміє, але може принести більше грошей розробнику тому і profit. Цікаво, що такий метод виник давно і не тільки в програмуванні.[http://en.wikipedia.org/wiki/Rube_Goldberg_machine 2]


{{Айті}}
{{Айті}}
[[Категорія:ІТ]]
[[Категорія:ІТ]]

Версія за 21:16, 24 січня 2020

Dor3.png

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

Якось так

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

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

Звідки назва

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

Підвиди

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

Див. також

Посилання