- 1
- 2
- 3
- 4
- 5
if ((act_type == 15) || (act_type == 24)) {
} else {
if (duration != null)
dts.setDuration(dts.getDuration().add(duration));
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+78
if ((act_type == 15) || (act_type == 24)) {
} else {
if (duration != null)
dts.setDuration(dts.getDuration().add(duration));
}
Вся пунктуация сохранена и НИЧЕГО НЕ ВЫРЕЗАНО
Волшебный if
Пруф [[ скрыт ]]
строка 112 - 116
bormand 28.11.2012 10:00 # +2
defecate-plusplus 28.11.2012 10:31 # +1
с годами все чаще случается, что так и хочется сказать "блять, откуда это в моей голове?"
а ведь еще можно выстрелить контрольными квайном-маккласки и карно
LispGovno 28.11.2012 10:40 # −3
да негде их зздесь применять
КО, не сдержался, увидев говно:
bormand 28.11.2012 10:44 # +2
bormand 28.11.2012 10:49 # 0
movaxbx 28.11.2012 21:16 # +1
Хотя дизъюнкцию и конъюнкцию запомнил очень хорошо еще в школе, как и абсциссу с ординатой.
Fai 28.11.2012 21:33 # +1
Ирод, я до сих пор путаю!
В английском все проще - numerator и denominator
Govnocoder#0xFF 28.11.2012 22:35 # +1
LispGovno 28.11.2012 22:38 # −9
Govnocoder#0xFF 28.11.2012 22:40 # +2
Steve_Brown 29.11.2012 14:19 # +3
:7
Fai 29.11.2012 14:30 # 0
Govnocoder#0xFF 29.11.2012 14:44 # 0
TarasB 29.11.2012 14:57 # +1
В общем, я в книге "зри в корень" это, кажись, как-то читал и там нашли решение.
Govnocoder#0xFF 29.11.2012 14:59 # 0
Setry 29.11.2012 15:21 # 0
Север - с другой стороны
(или описываем юг север через любой другой материк)
встаем так, чтобы смотреть на север, юг у нас за спиной
право там, с какой стороны встанет солнце
Ну или любым другим способом, связанным с вращением планеты (завихрение воздушных потоков, омывание одного из берегов реки...)
TarasB 29.11.2012 15:31 # 0
Steve_Brown 30.11.2012 10:14 # 0
3.14159265 29.11.2012 16:09 # 0
TarasB 29.11.2012 16:10 # 0
3.14159265 29.11.2012 16:31 # 0
PS. А можно сцылочку. Тема-то шибко срачная.
TarasB 29.11.2012 17:36 # +1
3.14159265 29.11.2012 18:54 # 0
Так это ж древний вопрос.
Кстати давно в книжке какой-то читал, что у Билли Гейтса спейциальное цифровое зеркало в ванной, которое ничего не переворачивает.
Потому он до таких срачей не опускается.
Я бы положил на пол.
3.14159265 29.11.2012 14:38 # +1
replace('альфач', 'Гумно')
movaxbx 28.11.2012 22:53 # 0
TarasB 29.11.2012 11:58 # 0
Fai 29.11.2012 12:01 # 0
GoblinAlchemist 29.11.2012 15:58 # 0
TarasB 29.11.2012 16:12 # +4
Был Т-образный перекрёсток на даче, и когда едешь в город, но в одну сторону - это в город, а в другую - просто переулок с тупиком.
И мы с бабушкой там шли, и какая-то женщина спросила, в какую сторону идти в город, у она ей ответила "направо".
И с тех пор я больше не путаю право и лево.
Я всегда вспоминаю тот перекрёсток, когда надо вспомнить, где право, где лево.
3.14159265 29.11.2012 16:32 # 0
Same shit. Я вообще до 6-го класса путал, лол.
Потом просто заставил себя запомнить.
eth0 29.11.2012 17:05 # +3
Тогда слушайте мою. Сначала я ориентировался по пятну, которое было на правой, а на левой, соответственно, нет. Потом - что я этой рукой ем. Сейчас можно ориентироваться по часам, но я уже знаю, где какая сторона.
3.14159265 29.11.2012 17:13 # 0
Делал так же. Только у меня ориентиром был шрам, на другой руке. Еще твердо помнил что слева едут машины.
Но на это нужно пару секунд - посмотреть на руку или задуматься.
GoblinAlchemist 29.11.2012 17:39 # +1
TarasB 29.11.2012 19:25 # +3
Направо - это вдоль бортика, а налево - это надо как-то влезть в дырку во встречном потоке.
inkanus-gray 29.11.2012 20:00 # +2
PascalGovno 29.11.2012 20:24 # +1
Steve_Brown 30.11.2012 10:16 # 0
defecate-plusplus 28.11.2012 10:56 # 0
интуитивно понятно из названий ведь
кон - аргументы должны быть в согласии (con-, консонанс, консенсус)
диз - разногласие (dis-, диссонанс, дизбаланс)
bormand 28.11.2012 11:16 # +5
Fai 28.11.2012 17:09 # −4
А дизъюнкция это когда ты падаешь со стула и ломаешь себе руку.
3.14159265 28.11.2012 17:13 # +3
А xor - это когда на стуле сидит кто-то другой?
Fai 28.11.2012 17:16 # −2
> дизбаланс / баланс
После этих слов, первое, что пришло в голову это балансировать на ножке стула.
Как упал, пришло озарение.
krypt 28.11.2012 15:57 # −2
А вот, что из них конъюнкция, а что дизъюнкция - я уже забыл )
По-моему, конъюнкция - это И (приставка диз- ассоциипуется с разделением, отрицанием, и чем-то в этом духе)
3.14159265 28.11.2012 16:18 # +3
Я-то отличаю, но термины идиотские и окончательно запомнить удалось только за четыре года универа.
Сука, мудаки, И, ИЛИ для них это было слишком просто.
defecate-plusplus 28.11.2012 16:31 # 0
Fai 28.11.2012 17:13 # −1
Сука, мудаки, АССЕМБЛЕР, СИ для них это было слишком просто.
3.14159265 28.11.2012 17:21 # +1
Так это более-менее логичные термины.
Хоть и парадигма не очень.
Fai 28.11.2012 20:05 # 0
ВЫ ЧТО НЕ СЛУШАЛИ?
Наследование, полиморфизм, инкапсуляция!
bormand 28.11.2012 20:03 # +1
Да. Чтобы математика была доступна не каждому.
Ось x, ось y, ось z любой дурак запомнит - назовем их абсциссой, ординатой и аппликатой.
И и ИЛИ понятны любому дураку, назовем их дизъюнкцией и конъюнкцией.
Fai 28.11.2012 20:24 # +7
Сфера - футбольный мяч
Эллипсоид - мяч для регби (ну почти)
Гиперсфера - мяч для гиперфутбола
Прямоугольный параллелепипед - пустая комната
Параллелепипед - кривая пустая комната
Правильный тетраэдр - пирамида
Тетраэдр - кривая пирамида
Додекаэдр - лютый пиздец
bormand 28.11.2012 20:31 # +1
А икосаэдр тогда что?
Fai 28.11.2012 20:54 # 0
roman-kashitsyn 28.11.2012 21:14 # +1
Fai 28.11.2012 20:43 # +5
1. Натуральные числа (1, 2, ..) - чтобы посчитать пальцы.
2. Ноль (0) - чтобы посчитать сколько у Вас друзей.
3. Неотрицательные числа (0, 1, 2, ..) - чтобы считать одновременно и Ваших друзей и Ваши пальцы, не вспоминая о том, что ноль - не натуральное число.
4. Отрицательные числа (.., -2, -1) - чтобы считать Вашу зарплату.
5. Целые числа (.., -1, 0, 1, ..) - чтобы одновременно считать Вашу зарплату, друзей и пальцы (о да, это нужно очень часто!).
6. Рациональные числа (1/2, 3/5, 12/3, ..) - чтобы посчитать какая доля яблока достанется Вам, если Вы хотите по-ровну разделить его в компании из 10 человек.
7. Трансцендентные числа (pi, e, ..) - специальные числа, для того, чтобы соревноваться кто сколько сколько цифр из них помнит наизусть.
8. Вещественные числа (0.1, 3.5, 12.323, pi, e ..) - чтобы одновременно делить горошину на всю семью и соревноваться в запоминании цифр числа пи.
9. Мнимые числа (i, 2i, 0.1i) - специальные числа, чтобы дураки не понимали, зачем они нужны. (просто притворитесь, что понимаете)
10. Комплексные числа (3 + 2i, pi + ei) - для того, чтобы одновременно делить горошину на всю семью, соревноваться в запоминании цифр числа пи и притворяться, что знаешь зачем нужны мнимые числа.
inkanus-gray 29.11.2012 07:48 # +1
roman-kashitsyn 29.11.2012 10:36 # 0
я продуктивно использовал их на олимпиаде по математике в универе при доказательстве тригонометрических формул. Сводишь синусы с косинусами к комплексным экспонентам, а дальше простая алгебра.
TarasB 29.11.2012 11:59 # +1
Fai 29.11.2012 12:02 # 0
> 9. Мнимые числа ... (просто притворитесь, что понимаете)
Молодец, я чуть не поверил, что ты правда знаешь зачем они.
roman-kashitsyn 29.11.2012 12:06 # 0
Для преобразования Лапласа и решения линейных ОДУ, например.
Fai 29.11.2012 12:11 # 0
Поздравляю, ты усвоил материал.
Steve_Brown 28.11.2012 10:40 # −1
В таких-то случаях не надо делать ничего. А иначе как обычно...
bormand 28.11.2012 10:45 # 0
Steve_Brown 28.11.2012 10:59 # −2
А так может зависеть от...
"Если отключат воду, или наступит конец света, или просто будет в лом, то ничего делать не надо. А так - уберись в комнате, пожалуйста."
bormand 28.11.2012 19:59 # 0
Короче и понятней ;)
smpl 28.11.2012 11:02 # −1
там звучит примерно так:
если это отпуск или отпуск с отработкой то ничего не делаем иначе добавляем отработанное время к отработанному времени(изменяем объект хранящийся в объекте) и устанавливаем объект самому себе.
вот примерно так это звучит, а проблема вскрылась в том что помимо отпусков есть ещё больничные и там время не надо учитывать)
да и естественная формулировка звучит куда лучше:
smpl 28.11.2012 11:18 # −1
вот это тоже отдельный огонь)))
GoblinAlchemist 28.11.2012 11:37 # −1
Но ведь инкапсуляция, понимаешь, и паттерны!
roman-kashitsyn 28.11.2012 11:45 # +3
Всё гораздо банальнее: в жабе нельзя перегружать операторы, а Duration, видимо, BigInteger или BigDecimal
GoblinAlchemist 28.11.2012 11:47 # 0
wvxvw 28.11.2012 12:51 # +1
roman-kashitsyn 28.11.2012 13:39 # +1
smpl 28.11.2012 12:02 # 0
bormand 28.11.2012 11:59 # 0
niggerzilla 28.11.2012 13:48 # −1
tir 28.11.2012 13:53 # +1
Govnocoder#0xFF 28.11.2012 22:33 # −2
Fai 28.11.2012 22:54 # −1
Сравни:
bormand 28.11.2012 22:57 # +1
Fai 28.11.2012 23:00 # +1
Govnocoder#0xFF 28.11.2012 23:20 # −1
Fai 29.11.2012 00:19 # 0
((act_type != 15) || (act_type != 24))
Берем 15 - (false || true) => true
Берем 24 - (true || false) => true
Любое число отличное от 15 и 24 - (true || true) => true
Теперь понятно?
bormand 29.11.2012 06:21 # +2
Govnocoder#0xFF 29.11.2012 17:41 # 0
GoblinAlchemist 29.11.2012 11:46 # 0
TarasB 29.11.2012 14:58 # 0
roman-kashitsyn 28.11.2012 23:25 # +1
Fai 29.11.2012 00:22 # 0
wvxvw 29.11.2012 01:58 # 0
roman-kashitsyn 29.11.2012 11:58 # 0
Наверное, можно так
bormand 28.11.2012 19:57 # −1
Fai 28.11.2012 19:59 # 0
And if my program isn't done I eat parantheses for lunch...
They might look funny but they have semantic power...
That gives your programs lots of brevity and punch.
tir 28.11.2012 14:00 # 0
ПС. Если, duration увеличивается в одном месте - нет смысла выносить метод.
ППС. Схлопывать два if'а в один я бы не стал, т. к. слишком мало данных для принятия такого решения.
smpl 29.11.2012 07:00 # 0
tir 29.11.2012 07:58 # +2
2. пустая секция: иногда бывают такие выражения в if, что проще оставить пустую секцию, чем переписывать на отрицание (т. к. выражение вида !(a && b || c && !d) просто взрывает мозг). Сам иногда практикую пустые секции, правда всегда с комментарием:
3. Про второй блок if писали выше - арифметика с BigDecimal. Почему не схлопнуть? Объясню на примере. Допустим есть код:
может показаться, что его можно легко схлопнуть в
и это частенько приводит в ловушку. Пример: потребовалось добавить немного логики
при схлопнутом if код с вероятностью 95% будет добавлен не в ту else ветвь:
if (a && b && c) {
...
} else {
...
foo();
}
А эти два варианта очень даже не тождественны.
Мораль: схлопывать if стоит только в том случае, когда на 100% понимаешь, как именно происходит ветвление.
Fai 29.11.2012 08:03 # +1
Если выражение осмысленное - вынеси в отдельную функцию.
Например в таком примере:
Выдели условие в функцию и перепиши так:
И это далеко не самый показательный пример.
tir 29.11.2012 08:36 # 0
я вообще в таких случаях делаю булевые переменные с осмысленными именами
b1 = a && b
b2 = c && d
if (b1 || b2) {}
Fai 29.11.2012 09:15 # −1
Только вот если выращение довольно общее и осмысленное, оно может еще где-нибудь пригодиться.
Вообще нужно взять за правило и любое самостоятельное выражение сложнее чем x+y-z выносить в функцию.
Тогда весь код будет состоять из настолько маленьких функций, что одного взгляда на них будет достаточно, чтобы понять, правильно она написана или нет.
А вообще: "Сначала напиши, чтобы работало. Потом сделай красиво. Потом сделай быстро."
bormand 29.11.2012 09:33 # 0
... но понять, что же код делает в целом, будет, увы, нереально.
Fai 29.11.2012 09:44 # 0
tir 29.11.2012 10:02 # +2
пример:
Fai 29.11.2012 10:22 # 0
eth0 29.11.2012 08:38 # +2
Разворачивается спокойно, только вместо else внешнего блока будет elseif. И это гораздо лучше, нежели три степени глубины, да ещё и всё действие в ветви else.
tir 29.11.2012 08:48 # 0
воспринимается легче?
eth0 29.11.2012 11:15 # 0
GoblinAlchemist 29.11.2012 11:58 # 0
bormand 29.11.2012 08:39 # +2
Если у автора все настолько печально, что он не сможет вынести if(c) обратно, когда это понадобится, и, вместо этого, захуячит код в первое попавшееся else, то ему и такие приемы не помогут.
tir 29.11.2012 08:46 # 0
bormand 29.11.2012 09:34 # +2
Fai 29.11.2012 09:50 # 0
tir 29.11.2012 10:06 # 0
Развернутый if служит своего рода меткой - "здесь все не так просто". И такая ситуация встречается редко (один раз из ста, может даже реже). И это признак того, что надо отнестись к этому месту не просто внимательно, а очень внимательно. Таким кодом вы просто помогаете себе в будущем.
Fai 28.11.2012 15:56 # 0
smpl 29.11.2012 21:30 # +1
roman-kashitsyn 29.11.2012 21:34 # +3
Govnocoder#0xFF 29.11.2012 21:52 # +2
bormand 29.11.2012 21:37 # +2
Fai 30.11.2012 13:46 # +1