Русский и индуский код

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
Шэф
Маньяк
Сообщения: 2992
Зарегистрирован: 22 сен 2007, 12:51

Русский и индуский код

Сообщение Шэф »

Русский код, бессмыссленный и беспощадный

Но даже я, не очень вовлеченный в написание кода, заценил изящество проверки i < 10:

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

Ну и на закуску про быдлокодеров и BrainFuck.
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

Re: Русский и индуский код

Сообщение tasko »

Ну потрясающе как в тему.
Неделю назад я переписывал код старого приложения.
Вот отрывки

Код: Выделить всё

            dSum = Val(Mid(ccNo, 13, 1))
            dDSum = CStr(Val(Mid(ccNo, 12, 1)) * 2)
            If Len(Trim(dDSum)) = 2 Then
                dDSum = Val(Left(Trim(dDSum), 1)) + Val(Right(Trim(dDSum), 1))
            End If
            dSum = dSum + Val(dDSum)
            dSum = dSum + Val(Mid(ccNo, 11, 1))
            dDSum = CStr(Val(Mid(ccNo, 10, 1)) * 2)
            If Len(Trim(dDSum)) = 2 Then
                dDSum = Val(Left(Trim(dDSum), 1)) + Val(Right(Trim(dDSum), 1))
            End If
И так до нуля.

Отдельный код для длины ccNo = 13, 14, 15 и 16.

Самое зверское то, что программист знал, что такое остаток от деления, так как в конце функции он все же его применил.
Аватара пользователя
Marmot
Графоман
Сообщения: 39283
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Русский и индуский код

Сообщение Marmot »

tasko писал(а):Ну потрясающе как в тему.
Неделю назад я переписывал код старого приложения.
Вот отрывки

Код: Выделить всё

            dSum = Val(Mid(ccNo, 13, 1))
            dDSum = CStr(Val(Mid(ccNo, 12, 1)) * 2)
            If Len(Trim(dDSum)) = 2 Then
                dDSum = Val(Left(Trim(dDSum), 1)) + Val(Right(Trim(dDSum), 1))
            End If
            dSum = dSum + Val(dDSum)
            dSum = dSum + Val(Mid(ccNo, 11, 1))
            dDSum = CStr(Val(Mid(ccNo, 10, 1)) * 2)
            If Len(Trim(dDSum)) = 2 Then
                dDSum = Val(Left(Trim(dDSum), 1)) + Val(Right(Trim(dDSum), 1))
            End If
И так до нуля.

Отдельный код для длины ccNo = 13, 14, 15 и 16.

Самое зверское то, что программист знал, что такое остаток от деления, так как в конце функции он все же его применил.
Судя по всему это и он есть - BrainFuck?
Я например ничего не понял, какой это хоть язык-то?
Аватара пользователя
AlexANB
Маньяк
Сообщения: 2904
Зарегистрирован: 17 фев 2003, 18:47
Откуда: Ontario

Re: Русский и индуский код

Сообщение AlexANB »

Marmot писал(а):Я например ничего не понял, какой это хоть язык-то?
Это VBA. Возможно и просто VB
Аватара пользователя
sz
Маньяк
Сообщения: 1266
Зарегистрирован: 17 фев 2003, 19:34

Re: Русский и индуский код

Сообщение sz »

Marmot писал(а):Судя по всему это и он есть - BrainFuck?
Я например ничего не понял, какой это хоть язык-то?
BrainFuck перепутать с Бейсиком :evil:
BrainFuck язык благородный. Для истинных ценителей.
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Re: Русский и индуский код

Сообщение CdR »

sz писал(а):BrainFuck перепутать с Бейсиком :evil:
Исключительно их-за семантической тождестенности восприятия ассоциативной сущности словоформ.
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45281
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

Re: Русский и индуский код

Сообщение Stanislav »

CdR писал(а):
sz писал(а):BrainFuck перепутать с Бейсиком :evil:
Исключительно их-за семантической тождестенности восприятия ассоциативной сущности словоформ.
Круто! Сразу видно - в совершенстве владеет! :D
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

Re: Русский и индуский код

Сообщение tasko »

Marmot писал(а): Я например ничего не понял, какой это хоть язык-то?
Ну так в этом и весь смысл, чтобы простые и естественные вещи выглядели как иероглифы, в котором только разработчик и может разобраться. Язык: VB.

Простейший алгоритм
Есть число длиной 13 цифр.
Нужно просуммировать цифры и найти контрольную сумму.
Последняя цифра берется как есть.
Предпоследняя умножается на 2, и от полученного числа берется сумма цифр.
И так до первой цифры.

http://www.beachnet.com/~hstiles/cardtype.html
Аватара пользователя
Marmot
Графоман
Сообщения: 39283
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Русский и индуский код

Сообщение Marmot »

tasko писал(а):
Marmot писал(а): Я например ничего не понял, какой это хоть язык-то?
Ну так в этом и весь смысл, чтобы простые и естественные вещи выглядели как иероглифы, в котором только разработчик и может разобраться. Язык: VB.

Простейший алгоритм
Есть число длиной 13 цифр.
Нужно просуммировать цифры и найти контрольную сумму.
Последняя цифра берется как есть.
Предпоследняя умножается на 2, и от полученного числа берется сумма цифр.
И так до первой цифры.

http://www.beachnet.com/~hstiles/cardtype.html
Ой, блин, ну и изврат, работать с числом через его десятичное представление...Т.е. понятно, что это придумали в ветхозаветные времена, что бы это можно было делать вручную :)
А вообще, в жопу такие алгоритмы, с битами работать как-то естественнее, ИМХО...
Аватара пользователя
sz
Маньяк
Сообщения: 1266
Зарегистрирован: 17 фев 2003, 19:34

Re: Русский и индуский код

Сообщение sz »

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

Китайский код выглядит так.

Допустим, вы написали функцию

зажарить яичницу ()
{
нагреть сковородку ();
разбить яйца ();
ждать пока не поджарится ();
}

Определенные китайцы пишут так:

зажарить яичницу ()
{
начинать нагревать сковородку ();
закончить нагревать сковородку и сделать все останольное ();
}

закончить нагревать сковородку и сделать все останольное ()
{
закончить нагревать сковородку ();
разбить одно яйцо ();
привезти на грузовике жаровню из макдональдса (она не будет использована, но пусть стоит);
разбить второе яйцо и сделать все остальное ();
}

разбить второе яйцо и сделать все остальное ();
{
разбить второе яйцо ();
ждать минуту ();
ждать минуту ();
ждать пока не поджарится ();
}

и т.д. - алогичная структуризация по функциям и классам, ненужные частности и сопутствующие эффекты. Еще любят усложнять задачу, даже если клиент этого не просит и не попросит ближайшие 100 лет.
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45281
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

Re: Русский и индуский код

Сообщение Stanislav »

Хм... Что-то припоминается мне, что 3 года назад мне кто-то говорил, что программирование умерло, головой думать не надо и теперь требуются только быстро сляпать на фреймворках, используя копипаст из интернета. Главное, чтобы работало...
Аватара пользователя
Marmot
Графоман
Сообщения: 39283
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Русский и индуский код

Сообщение Marmot »

Ну да, любим мы на чужим кодом поприкалываться, а сами-то мы что пишем, давайте покаемся :)
Я, например, грешу следующим образом
- no comments, практически, только в самых запутанных местах :), хотя имена идентифицаторов достаточно информативны, например checkConnectionValidRestoreIfNot(Connection conn, int numberOfTries, int timeoutMs);
- люблю я покопипастить фрагменты собственного кода, вместо того что бы всякие фреймворки городить :)
- логить люблю, иногда даже без нужды, приятно тейлить логи на продакшне и видеть, что все работает как надо :)
Правда пришлось написать свой собственный логгер, так, как все существующие тормозят код не подетски, от моей к ним любви :)
Аватара пользователя
Marmot
Графоман
Сообщения: 39283
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Русский и индуский код

Сообщение Marmot »

Stanislav писал(а):Хм... Что-то припоминается мне, что 3 года назад мне кто-то говорил, что программирование умерло, головой думать не надо и теперь требуются только быстро сляпать на фреймворках, используя копипаст из интернета. Главное, чтобы работало...
Гы-гы, проблем тут несколько: фреймворков развелось дох, более того, многие из них любят за собой тащить кучу других фреймворков, из которых они используют 5-10% функцианальности. При этом, эти фреймоворки из прицепа очень часто начинают конфикитовать с теми которые у тебя уже есть или с другими прицепами :)
Короче, часто проще все написать самому :)
А вот те, кто это сделать не может, начинают искать, извращатся и рукоблудить...
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45281
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

Re: Русский и индуский код

Сообщение Stanislav »

Marmot писал(а):
Stanislav писал(а):Хм... Что-то припоминается мне, что 3 года назад мне кто-то говорил, что программирование умерло, головой думать не надо и теперь требуются только быстро сляпать на фреймворках, используя копипаст из интернета. Главное, чтобы работало...
Гы-гы, проблем тут несколько: фреймворков развелось дох, более того, многие из них любят за собой тащить кучу других фреймворков, из которых они используют 5-10% функцианальности. При этом, эти фреймоворки из прицепа очень часто начинают конфикитовать с теми которые у тебя уже есть или с другими прицепами :)
Короче, часто проще все написать самому :)
А вот те, кто это сделать не может, начинают искать, извращатся и рукоблудить...
Крест на пузе химическим карандашом, я так и ответил! Но был послан учиться искать код в инете с помощью Гугла! :D
Аватара пользователя
Marmot
Графоман
Сообщения: 39283
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Re: Русский и индуский код

Сообщение Marmot »

Stanislav писал(а): Крест на пузе химическим карандашом, я так и ответил! Но был послан учиться искать код в инете с помощью Гугла! :D
Ну это как бы не противоречит вышесказанному, искать фрагменты кода с целью их включения в свой проект это одно, и искать еще один фреймворк это совсем другое :)
Код искать полезно и нужно, но при этом важное умение вырезать из него то, что надо и , не сломав, вставить в свой кусок :)
Закрыто