|
![]() |
#1 |
Участник
|
Интересная дискуссия.
![]() Best practice такого конкретно нет, насколько мне известно, но этому и не препятствуют, так как, как уже многие написали, абсолютно легальная операция и многие предпочитают именно такой стиль написания. Личное мне это тоже всегда бросается в глаза, но чаще в других случаях, когда используются таблицы, и вместо if (inventTable) используется что-нить типа if (inventTable.ItemId != "") Но тому тоже есть теоретически верные аргументы, поэтому такие структуры я вижу в коде все чаще. По теме, в Inventory коде добавились еще конструкции вида if (0 != inventTable.RecId) или if (true == isProductMaster), когда константа идет первой в условии. Работал у нас парень один из Польши, который до этого писал много на С, и там это повсеместная практика, так как защищает от непроизвольных описок в таких логических условиях (уже забыл конкретные примеры, которые он приводил, когда я первый раз его об этом спросил) А про общее снижение кода... Да, я тоже считаю, что это так. Особенно учитывая сколько кода мы купили у партнеров. |
|
![]() |
#2 |
Moderator
|
Цитата:
Сообщение от kashperuk
![]() По теме, в Inventory коде добавились еще конструкции вида if (0 != inventTable.RecId) или if (true == isProductMaster), когда константа идет первой в условии. Работал у нас парень один из Польши, который до этого писал много на С, и там это повсеместная практика, так как защищает от непроизвольных описок в таких логических условиях (уже забыл конкретные примеры, которые он приводил, когда я первый раз его об этом спросил) Но во первых даже в C есть более простое и изящное решение - просто включить варнинги компилятора. Все известные мне компиляторы C, (даже gcc по моему), могут выдавать варнинг при попытке использования оператора присвоения внутри if. Во вторых - а какое это вообще имеет отношение к Аксапте ? Уж там то нечаянно оператор присвоения в if() не засунешь... |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от fed
![]() Ну я тоже когда-то много программировал на C. Там всегда есть опасность вместо if(var==1) написать if(var=1). Второй вариант конструкции вполне синтаксически легален, но вместо сравнения, присвоит значение в var, потом результат операции (1) закастует в логическое значение и потом выполнит оператор, поскольку в if() стоит истинное логическое условие. В такой ситуации можно писать условие в вывернутом формате типа if (1==var). Тут уж если нечаянно один знак равенства поставил - компилятор ошибку выдаст.
Но во первых даже в C есть более простое и изящное решение - просто включить варнинги компилятора. Все известные мне компиляторы C, (даже gcc по моему), могут выдавать варнинг при попытке использования оператора присвоения внутри if. Во вторых - а какое это вообще имеет отношение к Аксапте ? Уж там то нечаянно оператор присвоения в if() не засунешь... А отношение имеет прямое - просто показывает, что у нас нету жестких рекомендаций написания кода, поэтому все пишут "как хотят". |
|
![]() |
#4 |
Модератор
|
А вот это напрасно - хотя бы из уважения к людям которым потом эти письма дяди Федора разбирать и фиксить стоило бы этим озаботиться
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#5 |
Moderator
|
Еще страшно злит, когда в selectах в явном виде указывают список полей. Причем я могу понять, когда это делают с учетом покрывающего индекса (например только recId извлекают). Но понять, почему те криворукие создания которые AIF разрабатывали, ухитрились напихать списки полей во все запросы - это выше моих возможностей...
|
|
![]() |
#6 |
Участник
|
Цитата:
А надо писать на X++, используя best practices и naming conventions из X++. |
|
![]() |
#7 |
Возьми свет!!!
|
зато очень просто читать вот такое например
select count(RecId) from vendTrans where !ventTrans.SettleAmount убейтя я такое прочитать не могу!!!
__________________
Axapta 3.0 sp 5 Oracle ![]() Я могу взорвать вам мозг!!! |
|
![]() |
#9 |
Участник
|
Дык не идут к нам...
А те, кто идут, не справляются многие с техническими задачами на интервью. Более того, ERP программирование - это чуть специфическая область, а нанимаем мы обычно "for Micorosft", то есть человек этот должен иметь потенциал для продолжения работы в Майкрософт в другой команде, к примеру. |
|
![]() |
#10 |
Moderator
|
Цитата:
Сообщение от kashperuk
![]() Дык не идут к нам...
А те, кто идут, не справляются многие с техническими задачами на интервью. Более того, ERP программирование - это чуть специфическая область, а нанимаем мы обычно "for Micorosft", то есть человек этот должен иметь потенциал для продолжения работы в Майкрософт в другой команде, к примеру. Просто счас (как мне знакомые из бундеса говорят) у них там некоторый бум аксаптовский: в консультанты берут просто пользователей Аксапты с опытом (но без понимания системы в целом), в программисты просто C#овцев средней руки. Вот и вопрос - кто же это к вам пойдет на средние заработки, под заведомо невменяемый менеджмент и с достаточно мутными перспективами карьеры ? Только соискатели разрешений на работу... |
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от kashperuk
![]() Дык не идут к нам...
А те, кто идут, не справляются многие с техническими задачами на интервью. Более того, ERP программирование - это чуть специфическая область, а нанимаем мы обычно "for Micorosft", то есть человек этот должен иметь потенциал для продолжения работы в Майкрософт в другой команде, к примеру. ![]() Последний раз редактировалось ice; 13.06.2012 в 16:32. |
|
![]() |
#12 |
Участник
|
Цитата:
То есть не обязательно это УЖЕ уметь, но надо быть достаточно сообразительным, чтобы научиться. |
|
|
![]() |
||||
Тема | Ответов | |||
Бага в Query update(true) | 5 | |||
Не срабатывает skipDatabaseLog(true) | 14 | |||
visible(true) и курсор | 6 | |||
recordLevelSecurity(true) | 12 |
|