AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2015, 19:22   #1  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Ненавижу, когда пишут методы больше 20-30 строк.
Ненавижу, когда
Пишут
цикл
if условие1
код с ещё кучей вложенных ифов
конецif
Конеццикла
Более читабельнее
цикл
if не условие1
продолжить
конецif
код с ещё кучей вложенных ифов
Конеццикла
Ненавижу когда в методе с десяток переменных и все называются переменная1, переменная2 место человеческих названий.
Ненавижу, когда ставят два таба место одного.
Ненавижу, когда пропускают больше одной строки.
Ненавижу, когда комментарии ставят снаружи метода, ещё и с двух сторон, а не в его начале.
То что вспомнил за последние пару дней. Блин, походу я злой человек.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 19.11.2015, 22:58   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Falcon Посмотреть сообщение
Давно хотел написать, что программисты, которые забывают написать else для каждого if...
Подавляющая часть локализаторского кода так выглядит:
X++:
if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoRU]))
{
    // ...
}
И какой тут должен быть блок else?
Цитата:
Сообщение от miklenew Посмотреть сообщение
Ненавижу, когда пишут
Код:
цикл
 if условие1
  код с ещё кучей вложенных ифов
 конецif
Конеццикла
Более читабельнее
Код:
цикл
 if не условие1
  продолжить
 конецif
 код с ещё кучей вложенных ифов
Конеццикла
У меня вот прямо противоположный опыт: подчас хочется в такой цикл дописать что-нить своё - ан-нет, какой-то умник всё решил за других и вставил в начале цикла if (!..) continue. Кто сказал, что цикл всегда будет работать только ради его кода? Вроде никто такого не говорил - но просто добавить свой код не выходит, приходится сначала переписывать if (!..).

Последний раз редактировалось gl00mie; 19.11.2015 в 23:08. Причина: typo
За это сообщение автора поблагодарили: Михаил Андреев (1), AP-1055D (1).
Старый 20.11.2015, 10:17   #3  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Подавляющая часть локализаторского кода так выглядит:
X++:
if (SysCountryRegionCode::isLegalEntityInCountryRegion([#isoRU]))
{
    // ...
}
И какой тут должен быть блок else?
У меня вот прямо противоположный опыт: подчас хочется в такой цикл дописать что-нить своё - ан-нет, какой-то умник всё решил за других и вставил в начале цикла if (!..) continue. Кто сказал, что цикл всегда будет работать только ради его кода? Вроде никто такого не говорил - но просто добавить свой код не выходит, приходится сначала переписывать if (!..).
Угу
если ЗначенниеЗаполнено(реквизит) тогда
100500 строк
КонецЕсли;
- крутиш крутиш колёсик, доходиш до конца, видиш что заканчивается и сразу выход из цикла. А дальше идёт русский матерный.
Что удобнее смотреть код с двумя табами: один до цикла, один внутри цикла.
Или с тремя табами: Один до цикла, один внутри цикла и один на условие?
Мой выбор: чем меньше табов, тем лучше.
Но почему то я уверен, что если бы вы привели пример, то возможно я там сделал бы иначе. Нужна конкретика. Я имел ввиду банальную проверку на заполненность значений.
Вот из нового: ненавижу когда параметры запроса с перечислениями задают отдельно, а не в самом запросе. Правда эту тему наверно только одинесники поймут.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 20.11.2015, 10:38   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от miklenew Посмотреть сообщение
Угу
если ЗначенниеЗаполнено(реквизит) тогда
100500 строк
Если 100500 строк, то в любом случае проблема
Старый 21.11.2015, 17:23   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,160 / 1289 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от belugin Посмотреть сообщение
Если 100500 строк, то в любом случае проблема
Вспомним метод updateNow класса CustVendSettle до DAX2009. Конечно до 100500 не дотянули, но было радостно.
Старый 21.11.2015, 17:26   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,160 / 1289 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Кто сказал, что цикл всегда будет работать только ради его кода?
Это, мы же гордимся наличием объектно-ориентированного. А если так, то тут должно работать "не изменяем, а расширяем". Или мы не супер объекто-ориентированные?
За это сообщение автора поблагодарили: macklakov (1).
Старый 23.11.2015, 03:20   #7  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 917 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Это, мы же гордимся наличием объектно-ориентированного. А если так, то тут должно работать "не изменяем, а расширяем". Или мы не супер объекто-ориентированные?
Будь осторожнее в своих желаниях. А то ведь сделают по науке, чтобы региональный код и вертикальные решения были изолированными наследниками. Но ведь тогда ничего не мешает разместить логику в закрытых библиотеках. И будем тогда резвиться с черным ящиком. Сейчас ящик полу-прозрачный и то тяжело бывает разобраться. С черным ящиком это будет совсем обезьянья работа.
__________________
Isn't it nice when things just work?
За это сообщение автора поблагодарили: Logger (1), S.Kuskov (2).
Старый 20.11.2015, 09:58   #8  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от miklenew Посмотреть сообщение
Более читабельнее
цикл
if не условие1
продолжить
конецif
код с ещё кучей вложенных ифов
Конеццикла
Я не люблю использовать "продолжить" внутри цикла, так как при этом перед этим самым "продолжить" нельзя использовать setPrefix. Если программный код несколько раз натыкался на "продолжить", а потом внутри цикла выдал какое-нибудь сообщение, то оно выглядит трудночитаемым из-за нескольких накопленных префиксов.
Не знаю как это проявляется в Ax2012, но в Ax2009 я "продолжить" в цикле перестал использовать в случаях когда в цикле мне нужны префиксы.
__________________
Дмитрий
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 20.11.2015, 10:06   #9  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Damn Посмотреть сообщение
Я не люблю использовать "продолжить" внутри цикла, так как при этом перед этим самым "продолжить" нельзя использовать setPrefix. Если программный код несколько раз натыкался на "продолжить", а потом внутри цикла выдал какое-нибудь сообщение, то оно выглядит трудночитаемым из-за нескольких накопленных префиксов.
Не знаю как это проявляется в Ax2012, но в Ax2009 я "продолжить" в цикле перестал использовать в случаях когда в цикле мне нужны префиксы.
Я уж больше 5 лет не работаю с аксой. Проблемы негров шерифа не е..т.
А насчёт setPrefix надо просто акуратнее его использовать, насколько помню предпочтительнее один сетпрефикс на одну функцию. Надо 3 уровня вложенности делай три функции.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 20.11.2015, 10:33   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,431 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Damn Посмотреть сообщение
Я не люблю использовать "продолжить" внутри цикла, так как при этом перед этим самым "продолжить" нельзя использовать setPrefix. Если программный код несколько раз натыкался на "продолжить", а потом внутри цикла выдал какое-нибудь сообщение, то оно выглядит трудночитаемым из-за нескольких накопленных префиксов.
Да к стати ещё это потенциальные грабли при сочетании с ttsbegin/ttscommit. Если в цикле размещена транзакция, то при использовании continue можно запросто из неё выпрыгнуть, пропустив ttscommit размещённый в конце тела цикла.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:16.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.