Другие языки программирования и технологии
Как понять выражение " время тупых кодеров прошло " ?
Т. е. если я пишу код чтоб скомпилить его потом в EXE файл то это зря? Сейчас как-то иначе проги пишут?
Для меня лично понятие попроще... .
Тупой кодер пишет как тупому кодеру удобно, а умный кодер пишет как юзеру тупому удобней....
Тупой кодер пишет как тупому кодеру удобно, а умный кодер пишет как юзеру тупому удобней....
Индусский код (также известен как Gletch) — в самом общем случае, это криво написанный код. Однако на самом деле, под индусским кодом подразумевают код, написанный наиболее неочевидным и неестественным из всех возможных способов.
По другой трактовке, индусский код — жаргонное название для программного кода крайне низкого качества, использующего простые, но порочные принципы «copy-paste», «главное завалить — а там запинаем» , «шапкозакидательство» . Так же известен как «write only», или — «написанное однажды — лучше не читать»
Пример:
uint i;
...
if (i.ToString().Length == 1)
{
...
}
Не сразу можно понять, что в этом коде просто-напросто выполняется проверка i < 10. Алгоритм достаточно прост: выполняется преобразование i в строку, после чего вычисляется её длина. Если число больше 9, то его десятичная запись содержит больше одного символа. Отрицательные числа переменная типа uint содержать не может. Проверку проходят лишь числа от 0 до 9. Алгоритм ресурсоёмок, не очевиден и не поддается сопровождению даже теоретически.
Еще пример:
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 будет вызван не менее десяти раз, со всеми вытекающими из этого последствиями. И всё только потому, что какому-то индусу было лень придумать менее ресурсоёмкую альтернативу.
Kитайский код — стиль написания программ, нарушающий принцип НПС («Не повторяй себя») . Китайский подход к программированию требует эксплицитного отказа от циклов, локальных переменных, любых процедур и условных выражений, а также использования технологии cut-and-paste чуть менее, чем везде. Такой подход увеличивает не только объём исходников, но и производительность (ведь пропускаются такты на джамповые команды [3]).
Возьмём, к примеру, такой кусочек программы на 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)
{
...
}
Быдлокодер (англ. Code Monkey) — это человек, который считает рекурсию мемом башорга, не знает основных алгоритмов и тонкостей языка, на котором пишет, и поэтому использует неочевидные и абсурдные решения, а зачастую вообще использует исключительно готовые алгоритмы и программы, находя их на OpenSource.net или сайтах, подобных CodeGuru. Понятие быдлокодера тесно связано с понятием индусского кода, которое также является одним из мемов Рунета. Также быдлокодерами именуются программисты, пишущие исключительно на языках подобных VB и привыкшие программировать мышкой, результатом чего является отсутствие языковой грамотности, понимания собственного кода и культуры программирования. Программы таких быдлокодеров никогда не бывают кроссплатформенными и редко бывают стабильными.
Пример быдлокодерства на языке C++
void SprositiPolzovatela()
{
for(int i=1;i<5;i++)
{
cout << "OK? (y/n) ";
cin >> c;
// bol'shie i malen'kie bukvi
if(c!='y' && c!='Y' && c!='n' && c!='N') i--;
else i=10;
}}
Здесь человек, вместо того, чтобы организовать условный цикл, использует цикл со счетчиком и манипулирует переменной внутри цикла, уменьшая ее на единицу, если пользователь ввел недопустимые символы, организуя таким образом вечный цикл
По другой трактовке, индусский код — жаргонное название для программного кода крайне низкого качества, использующего простые, но порочные принципы «copy-paste», «главное завалить — а там запинаем» , «шапкозакидательство» . Так же известен как «write only», или — «написанное однажды — лучше не читать»
Пример:
uint i;
...
if (i.ToString().Length == 1)
{
...
}
Не сразу можно понять, что в этом коде просто-напросто выполняется проверка i < 10. Алгоритм достаточно прост: выполняется преобразование i в строку, после чего вычисляется её длина. Если число больше 9, то его десятичная запись содержит больше одного символа. Отрицательные числа переменная типа uint содержать не может. Проверку проходят лишь числа от 0 до 9. Алгоритм ресурсоёмок, не очевиден и не поддается сопровождению даже теоретически.
Еще пример:
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 будет вызван не менее десяти раз, со всеми вытекающими из этого последствиями. И всё только потому, что какому-то индусу было лень придумать менее ресурсоёмкую альтернативу.
Kитайский код — стиль написания программ, нарушающий принцип НПС («Не повторяй себя») . Китайский подход к программированию требует эксплицитного отказа от циклов, локальных переменных, любых процедур и условных выражений, а также использования технологии cut-and-paste чуть менее, чем везде. Такой подход увеличивает не только объём исходников, но и производительность (ведь пропускаются такты на джамповые команды [3]).
Возьмём, к примеру, такой кусочек программы на 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)
{
...
}
Быдлокодер (англ. Code Monkey) — это человек, который считает рекурсию мемом башорга, не знает основных алгоритмов и тонкостей языка, на котором пишет, и поэтому использует неочевидные и абсурдные решения, а зачастую вообще использует исключительно готовые алгоритмы и программы, находя их на OpenSource.net или сайтах, подобных CodeGuru. Понятие быдлокодера тесно связано с понятием индусского кода, которое также является одним из мемов Рунета. Также быдлокодерами именуются программисты, пишущие исключительно на языках подобных VB и привыкшие программировать мышкой, результатом чего является отсутствие языковой грамотности, понимания собственного кода и культуры программирования. Программы таких быдлокодеров никогда не бывают кроссплатформенными и редко бывают стабильными.
Пример быдлокодерства на языке C++
void SprositiPolzovatela()
{
for(int i=1;i<5;i++)
{
cout << "OK? (y/n) ";
cin >> c;
// bol'shie i malen'kie bukvi
if(c!='y' && c!='Y' && c!='n' && c!='N') i--;
else i=10;
}}
Здесь человек, вместо того, чтобы организовать условный цикл, использует цикл со счетчиком и манипулирует переменной внутри цикла, уменьшая ее на единицу, если пользователь ввел недопустимые символы, организуя таким образом вечный цикл
Вопрос настолько обширный что не берусь ответить, а то камнями закидают. А вообще в програмиировани важен красивый способ решить проблему.
приведу пример чтобы Пашу поддержать.
Если у тебя есть переменная, которая может быть равна только 1 или 2, и тебе надо поменять ее значение на другое (т. е. с 1 на два или с 2 на 1) то тупой кодер напишет
if(i==1) i=2;
if(i==2) i=1;
а умный напишет
i=3-i;
только за вот тот, второй вариант, за него потом люди, которые код читают, морду бьют...
Если у тебя есть переменная, которая может быть равна только 1 или 2, и тебе надо поменять ее значение на другое (т. е. с 1 на два или с 2 на 1) то тупой кодер напишет
if(i==1) i=2;
if(i==2) i=1;
а умный напишет
i=3-i;
только за вот тот, второй вариант, за него потом люди, которые код читают, морду бьют...
Олег Ходос
а по моему не важно как я там написал клиенту главное чтоб работало без глюков
Я согласен с "Миша К". Но такие знания языка не говорят о том, что человек может решать серьезные задачи. Тупые кодеры - это те, кто изобретали велосипед. Хотя конечно хотелось бы узнать в результате чего и кем было сказано такое выражение! ? Если у человека мания величия, то это не говорит еще о том, что он - серьезный программист. Конечно все что написано мной - офтоп, но если автор фразы не смог аргументировать свой ответ, значит он просто п&ц.
Как сейчас так и раньше, при создании большого проэкта надо много людей!
Составляются требования, разрабатывается алгоритм, кодинг, тестирование!! ! Вот эта фраза говорит, кодеры - поумнели!! ! Они не просто давят кнопки а еще и головой думают!!!
Составляются требования, разрабатывается алгоритм, кодинг, тестирование!! ! Вот эта фраза говорит, кодеры - поумнели!! ! Они не просто давят кнопки а еще и головой думают!!!
Похожие вопросы
- 1.1 Если человек знает только язык программирования он - кодер, или кодер - это другое? 1.2 Кодеры разве не нужны?
- Как подружить кодера-дотнетчика с админом-линуксоидом?
- Вопрос по PHP к кодерам. Как сделать поле в форме обратной связи обязательным?
- Не сильно ли доставит неудобства кодеру если поиск библеотек и гугление будет на одной машине, а написание кода на др-й?
- Почему-же все-таки кодеры токсичны?
- Кстати, почему кодеров иногда называют г@*но кодерами в чем причина? .Ведь человек просто работает?
- К Кодерам Delphi вопросец
- пишу на delphi,vb.net,php,mysql,html,css но незная матиматики можно пробица в кодеры?
- Кодер и программист, в чем разница?
- Чем кодер отличается от программиста ??