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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.06.2012, 01:43   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Интересная дискуссия.
Best practice такого конкретно нет, насколько мне известно, но этому и не препятствуют, так как, как уже многие написали, абсолютно легальная операция и многие предпочитают именно такой стиль написания.

Личное мне это тоже всегда бросается в глаза, но чаще в других случаях, когда используются таблицы, и вместо if (inventTable) используется что-нить типа if (inventTable.ItemId != "")
Но тому тоже есть теоретически верные аргументы, поэтому такие структуры я вижу в коде все чаще.

По теме, в Inventory коде добавились еще конструкции вида

if (0 != inventTable.RecId) или if (true == isProductMaster), когда константа идет первой в условии.
Работал у нас парень один из Польши, который до этого писал много на С, и там это повсеместная практика, так как защищает от непроизвольных описок в таких логических условиях (уже забыл конкретные примеры, которые он приводил, когда я первый раз его об этом спросил)


А про общее снижение кода... Да, я тоже считаю, что это так. Особенно учитывая сколько кода мы купили у партнеров.
Старый 12.06.2012, 07:35   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от kashperuk Посмотреть сообщение

По теме, в Inventory коде добавились еще конструкции вида

if (0 != inventTable.RecId) или if (true == isProductMaster), когда константа идет первой в условии.
Работал у нас парень один из Польши, который до этого писал много на С, и там это повсеместная практика, так как защищает от непроизвольных описок в таких логических условиях (уже забыл конкретные примеры, которые он приводил, когда я первый раз его об этом спросил)
Ну я тоже когда-то много программировал на C. Там всегда есть опасность вместо if(var==1) написать if(var=1). Второй вариант конструкции вполне синтаксически легален, но вместо сравнения, присвоит значение в var, потом результат операции (1) закастует в логическое значение и потом выполнит оператор, поскольку в if() стоит истинное логическое условие. В такой ситуации можно писать условие в вывернутом формате типа if (1==var). Тут уж если нечаянно один знак равенства поставил - компилятор ошибку выдаст.
Но во первых даже в C есть более простое и изящное решение - просто включить варнинги компилятора. Все известные мне компиляторы C, (даже gcc по моему), могут выдавать варнинг при попытке использования оператора присвоения внутри if.
Во вторых - а какое это вообще имеет отношение к Аксапте ? Уж там то нечаянно оператор присвоения в if() не засунешь...
Старый 12.06.2012, 13:47   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от fed Посмотреть сообщение
Ну я тоже когда-то много программировал на C. Там всегда есть опасность вместо if(var==1) написать if(var=1). Второй вариант конструкции вполне синтаксически легален, но вместо сравнения, присвоит значение в var, потом результат операции (1) закастует в логическое значение и потом выполнит оператор, поскольку в if() стоит истинное логическое условие. В такой ситуации можно писать условие в вывернутом формате типа if (1==var). Тут уж если нечаянно один знак равенства поставил - компилятор ошибку выдаст.
Но во первых даже в C есть более простое и изящное решение - просто включить варнинги компилятора. Все известные мне компиляторы C, (даже gcc по моему), могут выдавать варнинг при попытке использования оператора присвоения внутри if.
Во вторых - а какое это вообще имеет отношение к Аксапте ? Уж там то нечаянно оператор присвоения в if() не засунешь...
Да, точно, именно из-за присвоения и равенства он это делал.
А отношение имеет прямое - просто показывает, что у нас нету жестких рекомендаций написания кода, поэтому все пишут "как хотят".
Старый 12.06.2012, 14:32   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от kashperuk Посмотреть сообщение
А отношение имеет прямое - просто показывает, что у нас нету жестких рекомендаций написания кода, поэтому все пишут "как хотят".
А вот это напрасно - хотя бы из уважения к людям которым потом эти письма дяди Федора разбирать и фиксить стоило бы этим озаботиться
__________________
-ТСЯ или -ТЬСЯ ?
Старый 12.06.2012, 14:45   #5  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Vadik Посмотреть сообщение
А вот это напрасно - хотя бы из уважения к людям которым потом эти письма дяди Федора разбирать и фиксить стоило бы этим озаботиться
Еще страшно злит, когда в selectах в явном виде указывают список полей. Причем я могу понять, когда это делают с учетом покрывающего индекса (например только recId извлекают). Но понять, почему те криворукие создания которые AIF разрабатывали, ухитрились напихать списки полей во все запросы - это выше моих возможностей...
Старый 12.06.2012, 16:39   #6  
Napalm is offline
Napalm
Участник
 
80 / 88 (3) ++++
Регистрация: 23.05.2012
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Работал у нас парень один из Польши, который до этого писал много на С, и там это повсеместная практика, так как защищает от непроизвольных описок в таких логических условиях (уже забыл конкретные примеры, которые он приводил, когда я первый раз его об этом спросил)
Вот именно, работал на C - пишет на X++, используя best practices из С. Работал на FoxPro - пишет на X++, используя best practices из FoxPro, и т.п.

А надо писать на X++, используя best practices и naming conventions из X++.
Старый 12.06.2012, 15:44   #7  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Цитата:
Сообщение от fed Посмотреть сообщение
Вот я и пытаюсь понять - это типа теперь такой best practice ?
зато очень просто читать вот такое например
select count(RecId) from vendTrans where !ventTrans.SettleAmount
убейтя я такое прочитать не могу!!!
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 13.06.2012, 13:44   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Дык не идут к нам...
А те, кто идут, не справляются многие с техническими задачами на интервью.

Более того, ERP программирование - это чуть специфическая область, а нанимаем мы обычно "for Micorosft", то есть человек этот должен иметь потенциал для продолжения работы в Майкрософт в другой команде, к примеру.
Старый 13.06.2012, 14:17   #10  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Дык не идут к нам...
А те, кто идут, не справляются многие с техническими задачами на интервью.

Более того, ERP программирование - это чуть специфическая область, а нанимаем мы обычно "for Micorosft", то есть человек этот должен иметь потенциал для продолжения работы в Майкрософт в другой команде, к примеру.
Кроме того - с таким менеджментом - вменяемый народ к вам вряд ли пойдет. Вот тебе хорошо, ты полезным делом занимаешься - SCM тестишь. А представляешь - взяли к вам опытного разработчика, 7 лет работы, 10 успешных (или более или менее успешных) проектов. А его на следующий день взяли и посадили ну например интеграцию с киннект писать. Или в очередной 100500ый раз реализовывать новый, еще более революционный интерфейс, формы inventTable. Вопрос - долго ли он у вас после этого проработает ?
Просто счас (как мне знакомые из бундеса говорят) у них там некоторый бум аксаптовский: в консультанты берут просто пользователей Аксапты с опытом (но без понимания системы в целом), в программисты просто C#овцев средней руки. Вот и вопрос - кто же это к вам пойдет на средние заработки, под заведомо невменяемый менеджмент и с достаточно мутными перспективами карьеры ? Только соискатели разрешений на работу...
Старый 13.06.2012, 16:30   #11  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,821 / 402 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Дык не идут к нам...
А те, кто идут, не справляются многие с техническими задачами на интервью.

Более того, ERP программирование - это чуть специфическая область, а нанимаем мы обычно "for Micorosft", то есть человек этот должен иметь потенциал для продолжения работы в Майкрософт в другой команде, к примеру.
т.е нанятые люди разрабатывать erp должны одинаково уметь писать драйвера, к клепать игрушки для иксбокс

Последний раз редактировалось ice; 13.06.2012 в 16:32.
Старый 13.06.2012, 17:39   #12  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от ice Посмотреть сообщение
т.е нанятые люди разрабатывать erp должны одинаково уметь писать драйвера, к клепать игрушки для иксбокс
Предыдущий опыт не так важен, как возможность достичь успеха в любой из вышеперечисленных областей.
То есть не обязательно это УЖЕ уметь, но надо быть достаточно сообразительным, чтобы научиться.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бага в Query update(true) Alexius DAX: Программирование 5 14.09.2011 14:09
Не срабатывает skipDatabaseLog(true) jaran DAX: Программирование 14 09.04.2011 13:22
visible(true) и курсор mvf DAX: Программирование 6 20.07.2005 10:09
recordLevelSecurity(true) sassas DAX: Программирование 12 23.12.2004 16:44

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

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

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