Кроме программистов, вряд ли кому-то будет интересно. А вот (не)знание сетевых языков не важно, суть и так очевидна, коды простые.
1. Настолько законченный шедевр, что даже нарочно пародию такую не напишешь. Адреса ящиков изменил во избежание, а вот "орфография-пунктуация" (сиречь переносы строк) сохранены для пущего и вящего.
(
Быдлокод php )
Comments 38
Это концептуально правильно. :-)
И думаю - нет, не писал бы ты так же. Это, конечно, можно воспитать, но некоторых людей и воспитывать не надо - они в процессе обучения (неважно, как оно проводилось) сами всё понимают.
Reply
Хотя нет, не совсем. Концептуально 0+allsum2 ! Внимательнее код посмотри.
Reply
Не знаю, что такое сетка условий, но в JavaScript есть switch.
тупое плюсование вместо констант
А ещё в JavaScript есть оператор +=
Reply
Reply
Reply
В крайнем случае, если уж с ифами вертеть, то хотя бы иерархично, с вложениями по разным веткам и c else.
+= это уже детали синтаксиса. А вот 150, 200 и так далее можно было в отдельную переменную писать и уже в конце всё плюсовать (или вообще массив выделить).
Reply
Reply
Reply
О-хо-хо. Если бы ты знал, как часто я натыкаюсь на подобное в коде, который сейчас поддерживать приходится. И числа эти не суммы денег (как в твоем примере), а именно какие-то алтернативы. Типа, 1 - это задолженность, 2 - проценты, 3 - просроченные проценты. Вот примерно так. И таких вот "номеров" с десяток.
Я сам фигел. Ну, блин, это это ж, вообще ОСНОВЫ. Школа. Использование констант.
(Если это важно, язык - PL/SQL)
Reply
Reply
Первое -- понятно. Обычные такие следы отладки на пожаре.
А, вот, о втором давай поговорим, если не возражаешь.
Можешь сформулировать, почему именно ты так ругаешь второй код.
Почему плох транслит?
Почему ты считаешь что "сетка условий" (загадочное словосочетание, но, думаю, я тебя понял) была бы лучше?
Что за константы ты хотел бы видеть вместо "тупого плюсования" (вряд ли ты имеешь в виду те, что, конечно, пригодились бы для типов доставки)
И, таки, что тебе не нравится в вишенке?
Да, кстати, "спагетти-кодом" (ты, ведь, его под лапшой имеешь в виду?) обычно называют другое.
Reply
Reply
Про комментарии всё правильно. Но, ведь, как раз процитированный вполне понятен без комментариев. Он плох, да, видно, что его писал неквалифицированный программист. Однако, сама структура кода вполне логична. Чётко выписаны условия, при которых меняется цена. Наверняка эта структура соответствует структуре описания ценообразования в документе, по которому работал программист -- там наверняка была или таблица или именно такой список условий. Для полноты добавлены и условия, при которых цена не меняется. Такой код легко модифицировать, когда меняются цены. То, что не написали "+0", мне не кажется сколько-нибудь значимым. Делать += каждый раз, наверное, не стоило, но это просто ужас, а не ужас-ужас-ужас.
Код, который, ты, видимо, хочешь увидеть, содержит вложенные условия и длинный switch (см. ниже). Мне не кажется, что с этим кодом проще работать.
switch (deliveryType) {
case 0:
if (allSumm<1000) {
price = 250;
} else if (allSumm<3000 ( ... )
Reply
delivererFactory = function(){}
delivererFactory.prototype.getPrice = function(summ) {
this.setPrice(summ);
return this.price
}
delivererFactory.prototype.setPrice = function(summ) {throw 'We can not calculate the price';}
delivererFactory.make = function(type) {
if (delivererFactory[type] === undefined) {
throw 'Invalid delivery type';
} else {
delivererFactory[type].prototype = new delivererFactory();
}
return new delivererFactory[type];
}
delivererFactory[0] = function(){
this.setPrice = function(summ) {
if (summ<1000) {
this.price = 250;
} else if (summ<3000 ( ... )
Reply
Leave a comment