19.11.2015, 18:05 | #1 |
Восставший
|
If without else
Давно хотел написать, что программисты, которые забывают написать else для каждого if, а также default для каждого case - горят потом в аду в самых страшных муках. И вместе с ними еще те, кто ленятся писать детальные сообщения об ошибочных ситуациях, с указанием точного места в данных, которое вызвало ошибку. Чтоб вам врач в больнице так диагноз ставил!
Извините за оффтоп. |
|
19.11.2015, 18:48 | #2 |
Участник
|
Если в начале метода стоит условие
X++: if (...) return; то Вы принципиально в таких случаях пишите else для всего остального кода метода?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
19.11.2015, 18:53 | #3 |
Участник
|
Вы слишком категоричны.
|
|
19.11.2015, 19:22 | #4 |
Участник
|
Ненавижу, когда пишут методы больше 20-30 строк.
Ненавижу, когда Пишут цикл if условие1 код с ещё кучей вложенных ифов конецif Конеццикла Более читабельнее цикл if не условие1 продолжить конецif код с ещё кучей вложенных ифов Конеццикла Ненавижу когда в методе с десяток переменных и все называются переменная1, переменная2 место человеческих названий. Ненавижу, когда ставят два таба место одного. Ненавижу, когда пропускают больше одной строки. Ненавижу, когда комментарии ставят снаружи метода, ещё и с двух сторон, а не в его начале. То что вспомнил за последние пару дней. Блин, походу я злой человек.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
19.11.2015, 19:37 | #5 |
Британский учённый
|
Похоже тяжелая выдалась неделька
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
19.11.2015, 22:13 | #6 |
северный Будда
|
"Ну вы блин даёте"(с)
__________________
С уважением, Вячеслав |
|
19.11.2015, 22:58 | #7 |
Участник
|
Цитата:
X++: if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoRU])) { // ... } У меня вот прямо противоположный опыт: подчас хочется в такой цикл дописать что-нить своё - ан-нет, какой-то умник всё решил за других и вставил в начале цикла if (!..) continue. Кто сказал, что цикл всегда будет работать только ради его кода? Вроде никто такого не говорил - но просто добавить свой код не выходит, приходится сначала переписывать if (!..). Последний раз редактировалось gl00mie; 19.11.2015 в 23:08. Причина: typo |
|
|
За это сообщение автора поблагодарили: Михаил Андреев (1), AP-1055D (1). |
20.11.2015, 04:41 | #8 |
NavAx
|
По поводу default согласен. Но вот else не всегда имеет смысл. По поводу сообщений об ошибках, в принципе, согласен. Но сделать их вменяемыми, чтобы, к примеру, по ссылке открывали справочник с недостающей конфигурацией, это значительное усилие. Это усилие стоит денег. А с точки зрения клиента непонятно, зачем тратить деньги, если все равно потом нужен будет человек с дебаггером, который будет расследовать причину невменяемых сообщений, выдаваемых стандартом.
__________________
Isn't it nice when things just work? |
|
20.11.2015, 07:39 | #9 |
Участник
|
Коль пошла такая пьянка, меня бесят когда вот так:
X++: if(!_param) return ret1; if(_param) return ret2; |
|
20.11.2015, 07:48 | #10 |
Участник
|
До кучи if (a == true)
|
|
20.11.2015, 09:58 | #11 |
Участник
|
Цитата:
Не знаю как это проявляется в Ax2012, но в Ax2009 я "продолжить" в цикле перестал использовать в случаях когда в цикле мне нужны префиксы.
__________________
Дмитрий |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
20.11.2015, 10:06 | #12 |
Участник
|
Цитата:
Сообщение от Damn
Я не люблю использовать "продолжить" внутри цикла, так как при этом перед этим самым "продолжить" нельзя использовать setPrefix. Если программный код несколько раз натыкался на "продолжить", а потом внутри цикла выдал какое-нибудь сообщение, то оно выглядит трудночитаемым из-за нескольких накопленных префиксов.
Не знаю как это проявляется в Ax2012, но в Ax2009 я "продолжить" в цикле перестал использовать в случаях когда в цикле мне нужны префиксы. А насчёт setPrefix надо просто акуратнее его использовать, насколько помню предпочтительнее один сетпрефикс на одну функцию. Надо 3 уровня вложенности делай три функции.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
20.11.2015, 10:17 | #13 |
Участник
|
Цитата:
Сообщение от gl00mie
Подавляющая часть локализаторского кода так выглядит:
X++: if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoRU])) { // ... } У меня вот прямо противоположный опыт: подчас хочется в такой цикл дописать что-нить своё - ан-нет, какой-то умник всё решил за других и вставил в начале цикла if (!..) continue. Кто сказал, что цикл всегда будет работать только ради его кода? Вроде никто такого не говорил - но просто добавить свой код не выходит, приходится сначала переписывать if (!..). если ЗначенниеЗаполнено(реквизит) тогда 100500 строк КонецЕсли; - крутиш крутиш колёсик, доходиш до конца, видиш что заканчивается и сразу выход из цикла. А дальше идёт русский матерный. Что удобнее смотреть код с двумя табами: один до цикла, один внутри цикла. Или с тремя табами: Один до цикла, один внутри цикла и один на условие? Мой выбор: чем меньше табов, тем лучше. Но почему то я уверен, что если бы вы привели пример, то возможно я там сделал бы иначе. Нужна конкретика. Я имел ввиду банальную проверку на заполненность значений. Вот из нового: ненавижу когда параметры запроса с перечислениями задают отдельно, а не в самом запросе. Правда эту тему наверно только одинесники поймут.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
20.11.2015, 10:20 | #14 |
Участник
|
Цитата:
Сообщение от Falcon
Давно хотел написать, что программисты, которые забывают написать else для каждого if, а также default для каждого case - горят потом в аду в самых страшных муках. И вместе с ними еще те, кто ленятся писать детальные сообщения об ошибочных ситуациях, с указанием точного места в данных, которое вызвало ошибку. Чтоб вам врач в больнице так диагноз ставил!
Извините за оффтоп. |
|
|
За это сообщение автора поблагодарили: mazzy (2), Logger (1), TasmanianDevil (1), IvanS (1). |
20.11.2015, 10:33 | #15 |
Участник
|
Цитата:
Сообщение от Damn
Я не люблю использовать "продолжить" внутри цикла, так как при этом перед этим самым "продолжить" нельзя использовать setPrefix. Если программный код несколько раз натыкался на "продолжить", а потом внутри цикла выдал какое-нибудь сообщение, то оно выглядит трудночитаемым из-за нескольких накопленных префиксов.
|
|
20.11.2015, 10:38 | #16 |
Участник
|
|
|
21.11.2015, 17:23 | #17 |
Участник
|
|
|
21.11.2015, 17:26 | #18 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: macklakov (1). |
22.11.2015, 12:15 | #19 |
Участник
|
Я лично писал про опыт реальных проектов, а не про сферических объектно-ориентированных коней в вакууме Хорошие/плохие методы можно писать как в рамках ООП, так и в рамках процедурной парадигмы.
|
|
22.11.2015, 16:23 | #20 |
Участник
|
gl00mie не плохо бы было конкретный пример.
Вы давно в программировании, давайте помогайте разбираться старичкам и новичкам с нюансами. Я конкретный пример привёл, а вы наводите тень на плетень. Я думаю вы не страдаете отсутствием аргументации.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|