Брєд Портал - я несу світу хуйню! Подивився сам - запроси друзів!
Меню сайту
Categories
Мои статьи [4]
Наше опитування
Ким ви хочете стати, коли виростете?
Всього відповідей: 29
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0
Головна » Статті » Мои статьи

Индусский код
К.О. сообщает

Алсо аутентичный индусский код пишется на хинди и транслитерируется в C, C++ или java.
Настоящий индусский код

Примеры индусского кода

Пример № 1 (C#)
uint i;
...
if (i.ToString().Length == 1)
{
...
}


Не сразу можно понять, что в этом коде просто-напросто выполняется проверка i < 10. Алгоритм достаточно прост: выполняется преобразование i в строку, после чего вычисляется её длина. Если число больше 9, то его десятичная запись содержит больше одного символа. Отрицательные числа переменная типа uint содержать не может. Проверку проходят лишь числа от 0 до 9.

Алгоритм ресурсоёмок, не очевиден и не поддается сопровождению даже теоретически.

Пример № 2 (C#)
double rest(float a, float b)
{float res=a*b;
for (int i=0; i<999999999; i++)
if (i<=res && i+1>res) {res = res-i; break;}
return res;
}


Далеко не сразу можно понять, что этот код выделяет дробную часть произведения a*b. кроме того, функция выдаст ошибочное значение при a*b>999999999 или a*b<0. Также зависимость времени выполнения от величины целой части тоже не радует.

Пример № 3 (C#)
bool IsNumber (string str)
{
return (str.Replace ("0", "").Replace ("1", "").Replace ("2", "").Replace ("3", "").Replace ("4", "").Replace ("5", "").Replace ("6", "").Replace ("7", "").
Replace ("8", "").Replace ("9", "").Length == 0);
}


Хотя в данном случае, вообще говоря, алгоритм вполне очевиден, не менее очевидно и то, что для его выполнения конструктор класса string будет вызван не менее десяти раз, со всеми вытекающими из этого последствиями. И всё только потому, что какому-то индусу было лень придумать менее ресурсоёмкую альтернативу.

Пример № 4 (C#)
bool value;

if (value.ToString().Length == 4)
{
...
}
else if (value.ToString().Length == 5)
{
...
}
else
{
// внимание! кто-то хочет нас наебать подсунув некачественный (по всей вероятности, протухший) bool, но мы ему не дадим:
throw new ArgumentException();
// у некоторых племенных индусов бывает и продолжение, на случай если throw вдруг не сработает:
return !true && !false;
// надо же вернуть какую-нибудь хуйню, чтобы заказчик не ныл
}


В этом примере проверка истинности значения логической переменной производится с помощью длины её текстового представления. Если длина равна четырём („True“), значение истино, если пять („False“) - ложно, если ни то, ни се - тогда включаем panic mode и начинаем жарить карри.

Пример № 5 (PHP)
if ($_POST["end_oplata"]!="sending" and $_POST["continue_oplata"]!="prodoljit" and $_POST["prov"]!="proverka") {
...
}
elseif ($_POST["continue_oplata"]!="prodoljit" and $_POST["prov"]!="proverka") {
...
}
elseif ($_POST["continue_oplata"]=="prodoljit") {
...
}


В этом примере проверяется, какое действие нужно выполнить. Вместо того, чтобы создать одну переменную со значением следующего действия, создается три «быдлокодерских» переменных.

К тому же, это пример ужасного стиля именования переменных, containing as английские слова, так и transliterated russian ones. Видимо, сказался author's poor английский словарный запас.


Пример № 6

TurDuckEn Code — разновидность быдлокода, чаще всего встречающаяся в веб-приложениях. Как спагетти-код, только хуже. ТурДукен (en.w:Turducken) — декадентская расовая пиндосская нямка, cостоящая из индейки (turkey), нафаршированной уткой (duck), зафаршированной курицей (chicken).

Турдукен Код, например, состоит из PHP, фаршированным SQL, нафаршированным HTML, зафаршированным Javascript'ом. Вот так.

Почему именно индусский

В Индии с некоторых времен существует практика оценки производительности труда программиста на основе количества написанного кода. Чем больше кода, тем больше программист работает, и, следовательно, выше его оклад. Шустрые индусы быстро сообразили как обманывать неквалифицированных заказчиков.

Kитайский код

Kитайский код — стиль написания программ, нарушающий принцип НПС («Не повторяй себя»). Китайский подход к программированию требует эксплицитного отказа от циклов, локальных переменных, любых процедур и условных выражений, а также использования технологии cut-and-paste чуть менее, чем везде. Такой подход увеличивает не только объём исходников, но и производительность (ведь пропускаются такты на джамповые команды[2]).

Возьмём, к примеру, такой кусочек программы на C:
int arr[10];
int i;
for (i = 0; i < 10; i++)
{
arr[i] = 0;
}


Который, кстати, вполне мог бы выглядеть и так:
int arr[10];
memset(arr, 0, sizeof(arr));


Типичный программист в китайском стиле напишет это так:
int a0 = 0;
int a1 = 0;
int a2 = 0;
int a3 = 0;
int a4 = 0;
int a5 = 0;
int a6 = 0;
int a7 = 0;
int a8 = 0;


и в дальнейшем будет использовать a0, a1, a2, a3, a4 и т.д. Например, вместо прекрасного:
if (x < 10) arr[x] = x;

который особенно прекрасен если "x" меньше нуля, будет:
if (x == 0)
{
a0 = x;
}
else if (x == 1)
{
a1 = x;
}
else if (x == 2)
{
...
}


что, справедливости ради, лишено вышеупомянутой ошибки.

Пример #1, приведённый выше:
uint i;

if (i.ToString().Length == 1)
{
...
}


приверженец китайской методы перепишет так:
if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i == 6 || i == 7 || i == 8 || i == 9)
{
// произвести ещё одну бессмысленную операцию
}


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

Если программист в китайском стиле и напишет процедуру, то вероятность того, что результат её деятельности будет совершенно бесполезным, стремится к единице.

Очень часто китайский код пишут тупые студенты, которые пришли учиться по неясным причинам. Потом такой код приходится долго вкуривать. Выражение «ебу и патчу» произошло благодаря как раз таким случаям.

Пример китайского кода на практике: http://community.livejournal.com/code_wtf/160720.html

Аналы истории

29 января 2009 года на открытии Всемирного экономического форума в Давосе афтаритетность и квалифекация наших индусско-индийских коллег была подтверждена на официальном уровне и использована для доказательства не меньшей авторитетности и квалификации нашего брата:[3]

„У нас традиционно хорошо развита математическая школа, и программисты у нас одни из лучших в мире. Это без всяких сомнений. Думаю, что с этим никто не будет спорить, даже наши индийские коллеги.“
— В.В. Путин

Индийские коллеки спорить не стали, поскольку им глубого пох как Путин, так и программирование в целом, а вот Билли, после визита в страну обезьян, таки оспорил. Если ознакомиться с комментами, то выяснится, что были и несогласные.

ПРОФИТ!

Как уже говорилось, некотором индусам до сих пор платят не за качество, а за количества кода, в результате чего можно встретить подобные шедевры (и это только цветочки!):
if (true) {
// какой-то код
} else {
// a вот тут чистый profit
}
Категорія: Мои статьи | Додав: Zak_Dragon_Ink (27.04.2009) | Автор: я
Переглядів: 15997 | Коментарі: 3 | Теги: индусский код | Рейтинг: 4.0/1 |
Всього коментарів: 3
3 Dapaccert  
0
2010-12mix_res

2 juvf  
0
Возьмём, к примеру, такой кусочек программы на C:
int arr[10];
int i;
for (i = 0; i < 10; i++)
arr[i] = 0;

Который, кстати, вполне мог бы выглядеть и так:
int arr[10];
memset(arr, 0, sizeof(arr));

и чем лучше второй вариант? шылонамыло

Который, кстати, вполне мог бы выглядеть и так:
int arr[10] = {0};

1 Nimbaza  
0
Хороший поисковик

Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]
Форма входу
Пошук
хмарка тегів
индусский код брєдогенератор програма срач плащ фап шляпа Анатолий Вассерман жилетка карманы мозг анаболики Пистолет ТТ в масле вирт Троллинг Я надеваю волшебный плащ вова діалог самолёт охота Dart Vader Бик брєдовий брєд брєдовий рік Динозавр Куша Музикант новий брєд новий рік Рудъі свято Siemens B-day НІПЄЛЬ брєд баба дідо казарустра кури-оборотні ленін польща америкос балалайка злой гений клюква медведи Русский Казка Середземнолосся стандартна модель фізика
Copyright Kushnica © 2024