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

Результаты опроса: Как лучше оформлять несколько условий в select where?
Я предпочитаю указывать операторы до условия 27 60.00%
Я предпочитаю указывать операторы после условия 15 33.33%
Нет предпочтений: иногда делаю так, иногда иначе 3 6.67%
Не знаю/Мне все равно 0 0%
Голосовавшие: 45. Вы ещё не голосовали в этом опросе

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2011, 14:54   #1  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
на прошлом месте работы, я писал операторы до условия:
X++:
while select inventTable
    where inventTable.ItemId      == '1'
        && inventTable.ItemName == '2'
и мне казалось что так удобнее, например потому, что если вдруг надо закомментировать одно условие, то просто комментируется одна строка, а если оператор был бы в конце условия, то надо было бы комментировать ещё и его.
X++:
while select inventTable
    where inventTable.ItemId      == '1'
        //&& inventTable.ItemName == '2' // удобно

while select inventTable
    where inventTable.ItemId      == '1'  //&& // неудобно
              //inventTable.ItemName == '2'
когда пришел на другое место работы, ведущий разработчик настоял на том, что бы я писал оператор в конце строки условия. я долго с ним спорил, и пытался понять глубокий смысл написания условия именно таким способом. но в итоге получил ответ, что так требует BP и что так красивее (кстати понятие красоты у всех разное ). в итоге сейчас я пишу оператор в конце строки с условием, и уже привык

P.S. если говорить кратко, то сейчас пользуюсь первым вариантом (по привычке), но считаю более удобным второй (почему написал выше).
Вот такой вот, парадокс
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: mazzy (2), Pustik (2).
Старый 23.06.2011, 16:16   #2  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,518 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от lev Посмотреть сообщение
в итоге получил ответ, что так требует BP и что так красивее (кстати понятие красоты у всех разное ).
Насчёт ВР я тоже слышал - мол МС в сертификационных тестах разработчиков по 2009 в обязательном порядке требует условие справа. Хз правда или нет...

Насчёт красоты - всё-таки эстетичнее, когда границы текста ровные и справа, и слева. Не зря же текстовые редакторы умеют выравнивать текст
__________________
С уважением,
Вячеслав
Старый 23.06.2011, 16:19   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от pitersky Посмотреть сообщение
Насчёт красоты - всё-таки эстетичнее, когда границы текста ровные и справа, и слева. Не зря же текстовые редакторы умеют выравнивать текст
Ага, люблю когда все выровнено и слева и справа и посередине
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 23.06.2011, 18:41   #4  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Вы удивитесь, но я предпочитаю ставить && слева, а || справа. (Если кто-то хочет пофлудить, то это отличная тема для флуда ). Аргументы:
- && слева - не требует дополнительного выравнивания
- && слева - удобнее вставлять, убирать и комментировать условия
- && слева, а || справа - улучшает восприятие, и уменьшает вероятность ошибки при последующем возможном изменении условия (!). Знаков && как правило много, а знак || как правило один, поэтому проблем с выравниванием с ним не возникает..

Если пишу сам с нуля - ставлю слева. Если модифицирую код, где стоят справа - то не меняю (ну разве что если условие сильно запутанное или я его сильно меняю).

А еще я предпочитаю переносить "точку с запятой" отдельно на последнюю строку. Хотя иногда не делаю от лени. Аргументы для переноса:
- удобнее вставлять дополнительную строку в условие
- удобнее убирать (удалять или комментировать) последнюю строку в условии
- дополнительная строка между этим и следующим оператором, содержашая только одну точку с запятой, улучшает визуальное восприятие кода
Старый 23.06.2011, 19:28   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Zabr Посмотреть сообщение
Вы удивитесь, но я предпочитаю ставить && слева, а || справа.
а можно попросить отформатировать третий пример из первого в этой ветке сообщения.
любопытно было бы посмотреть
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2011, 22:56   #6  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
а можно попросить отформатировать третий пример из первого в этой ветке сообщения. любопытно было бы посмотреть
Wamr меня опередил. В точности так. С той поправкой, что "текущее ощущение прекрасного" как правило заставляет выровнять знаки равенства:
X++:
&& RContractTable.RContractAccount == bankClientPayment_RU.RContractAccount
&& RContractTable.RContractCode    == bankClientPayment_RU.RContractCode
Возможно, кому такое выравнивание кажется плохой привычкой. Ну так и бэст практис тоже не боги писали. Да и других плохих привычек в выравнивании не гнушаюсь, грешен:
X++:
if (X.value()) 
     Y = PurchStatus::Invoiced;
else Y = PurchStatus::Received;

Последний раз редактировалось Zabr; 23.06.2011 в 22:58.
Старый 24.06.2011, 14:13   #7  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Цитата:
Сообщение от Zabr Посмотреть сообщение
Wamr меня опередил. В точности так. С той поправкой, что "текущее ощущение прекрасного" как правило заставляет выровнять знаки равенства:
X++:
&& RContractTable.RContractAccount == bankClientPayment_RU.RContractAccount
&& RContractTable.RContractCode    == bankClientPayment_RU.RContractCode
Возможно, кому такое выравнивание кажется плохой привычкой.
А как "текущее ощущение прекрасного" сочетается со знаком "!" ?

X++:
&& ! RContractTable.RContractAccount
или

X++:
&&  RContractTable.RContractAccount == ''
Теги
select, как правильно, оформление кода, условия

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
select в X++ и список значений в условии where Prophetic DAX: Программирование 20 17.08.2010 18:43
QueryBuildRange в select.. where propeller DAX: Программирование 11 30.09.2008 13:35
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
select * where ... Perc DAX: Программирование 10 06.07.2005 12:31
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:08.