Страница 1 из 2

Straight forward

Добавлено: 19 июн 2009, 10:34
Mel'nik

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

if (!venue.getCountryName().toLowerCase().contains("canada")) return false;
		return true;
:s2:

Re: Straight forward

Добавлено: 21 июн 2009, 09:53
папа Карло
"хороший код".

Re: Straight forward

Добавлено: 21 июн 2009, 20:12
badger
Не говоря о том, чему Вы подкрутили у виска, вообще, использовать if без else в подобных конструкциях -- это дурной тон.

Плёхо

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

if (someShit)
    return blahBlah;

return fooBar;
Харашо

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

if (someShit)
    return blahBlah;
else
    return fooBar;

Re: Straight forward

Добавлено: 21 июн 2009, 20:26
aissp
только на етот гениальный код компилятор всегда выдает ворнинг, и очень правильно делает :D

да и код настолько дурен, что в коменнтариях не нуждается. :D

Re: Straight forward

Добавлено: 21 июн 2009, 21:42
badger
От компилятора зависит. Может выдать ворнинг, а может и не выдать. Разные по-разному.

Re: Straight forward

Добавлено: 21 июн 2009, 21:45
aissp
если не выдает то кто-то не правильный писал компилятор (те с которыми работал я все хором дают ворнинг, на самом деле мне кажется вы лукавите. с точки зрения логики кодера таких компиляторов не может быть :), но поверим вам на слово), там была втора фраза - и правильно делает :) она видно мимо прошла...

Re: Straight forward

Добавлено: 21 июн 2009, 22:00
CdR
Ладно, а чем так не угодил if без else?

Re: Straight forward

Добавлено: 21 июн 2009, 22:12
aissp
вам - тут не уместно :) я считаю етот код абсолютно законен, только надо аккуратно кодировать не расбрасывая мозк в теории=)

Re: Straight forward

Добавлено: 22 июн 2009, 06:58
Stanislav
badger писал(а):Не говоря о том, чему Вы подкрутили у виска, вообще, использовать if без else в подобных конструкциях -- это дурной тон.

Плёхо

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

if (someShit)
    return blahBlah;

return fooBar;
Харашо

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

if (someShit)
    return blahBlah;
else
    return fooBar;
Ну почему вы всегда рассматриваете книжные тривиальные примеры?
Представьте, что процедура на 2-3-4 экрана, а в начале процедуры случился какой-то шыт - ну взяли и отвалились, что плохого? Можно написать элс-иф, но читать то потом как? А если там по пути еще надо отвалиться? И еще десяток ифов? Если я вижу такой длинный иф, я предполагаю, что были веские основания его запузырить, а не просто любофф к искуйству. Насрать на компилятор - он железный, надо писать, чтобы удобнее было потом читать. ИМХО, такой отвал аналог бряка в цикле. Или вы бряк тоже считаете дурным тоном, поскольку он аналог гоу-ту?

Re: Straight forward

Добавлено: 22 июн 2009, 09:55
Дима

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

return (someShit) ? blahBlah : fooBar;

Re: Straight forward

Добавлено: 22 июн 2009, 11:31
Mel'nik
Да собственно фиг бы с if , добило ! перед логической операцией. 3аменено на

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

return(someShit)
ибо если someShit == false нахера ето дело делать true чтобы все равно вернуть false...

P.S. И такая дребедень каждый день :evil:

Re: Straight forward

Добавлено: 22 июн 2009, 11:33
Mel'nik
Кстати перечитав комменты заметил, что не один я, в первом чтении, етого незаметил :mrgreen:

Re: Straight forward

Добавлено: 22 июн 2009, 12:29
Дима
Mel'nik писал(а):Кстати перечитав комменты заметил, что не один я, в первом чтении, етого незаметил :mrgreen:
Не, ну понятно, что в изначальной мессаге 1 строкa лишняя, а в оставшейся есть лишний оператор ;) Читать - начиная с мессаги #2 :)

Re: Straight forward

Добавлено: 22 июн 2009, 16:17
badger
Mel'nik писал(а):Да собственно фиг бы с if , добило ! перед логической операцией. 3аменено на

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

return(someShit)
ибо если someShit == false нахера ето дело делать true чтобы все равно вернуть false...

P.S. И такая дребедень каждый день :evil:
Естественно. Про это даже речи не может быть. Я об этом сразу и написал.

Re: Straight forward

Добавлено: 22 июн 2009, 16:33
badger
Stanislav писал(а):Ну почему вы всегда рассматриваете книжные тривиальные примеры?
Это не книжный пример, а стиль программирования. Самая что ни на есть практика. Вы меня, Стас, извините, но чтобы эффективно программировать, всё же надо бы и теорию знать, хотя бы азы. А это самые азы и есть. Dijsktra и прочие подобные.

Я, конечно же, забыл поставить IMHO. Кому-то Dijsktra авторитет, кому-то нет. Кто-то считает, что это нормально, когда логическое ветвление ломается таким образом, кто-то считает, что это дурной тон. Я принадлежу к последним.
Представьте, что процедура на 2-3-4 экрана, а в начале процедуры случился какой-то шыт - ну взяли и отвалились, что плохого?
Процедуры на два-три экрана в общем случае -- дурной тон. Скажите мне, зачем вообще изобрели такой велосипед, как разбиение на функции, модули и т.д.? К сожалению, кто не прошёл через Common Lisp и через функциональные языки, плохо понимает это.
Если я вижу такой длинный иф, я предполагаю, что были веские основания его запузырить, а не просто любофф к искуйству.
Глубокие if-вложения практически всегда признак плохого дизайна. Но, разумеется, if ifу рознь, Стас. Я же потому и написал, что в подобных конструкциях лучше if-else! То есть в конструкциях, где точки выхода из условия принадлежат к одному типу. Я же не писал, что всякая хрень вроде

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

if (isDebug) {
   blah-blah
}
должна содержать else.
ИМХО, такой отвал аналог бряка в цикле. Или вы бряк тоже считаете дурным тоном, поскольку он аналог гоу-ту?
break да, тоже зло. Но неизбежное. На goto зря Вы наезжаете. Это не табу какое-то. Иногда удобнее с goto, чем извращаться через задний проход.