AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.07.2017, 12:23   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
После изменения энума ModuleInventPurchSales чтоб он был Extensible, нашли такой код в классе MCRCatalogAreaAnalysisDP, так как стал валится Compiler Warning: ExtensibleEnumInNumericalAssignment

X++:
    AmountMST cost = this.itemPrice(ModuleInventPurchSales::Invent);
    AmountMST sales = this.itemPrice(ModuleInventPurchSales::Sales);
    ...

    //Avoid division by zero
    if (this.itemPrice(ModuleInventPurchSales::Sales == 0))
    {
        mcrCatalogAreaAnalysisTmp.CogsPercent = 0;
    }
    else
    {
        mcrCatalogAreaAnalysisTmp.CogsPercent = cost / Sales;
    }
А вот как наши доблестные девелоперы пофиксили это

Нажмите на изображение для увеличения
Название: ff.jpg
Просмотров: 424
Размер:	48.0 Кб
ID:	11566

Последний раз редактировалось kashperuk; 17.07.2017 в 12:26.
За это сообщение автора поблагодарили: Stitch_MS (2), gl00mie (2), skuull (2), macklakov (1).
Старый 17.07.2017, 14:52   #2  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Цитата:
Сообщение от kashperuk Посмотреть сообщение
А вот как наши доблестные девелоперы пофиксили это
Выглядит так, будто доблестные девелоперы умеют писать скрипты, но не любят проверять результаты их работы.
Старый 17.07.2017, 16:03   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
Выглядит так, будто доблестные девелоперы умеют писать скрипты, но не любят проверять результаты их работы.
Если бы дело было только в этом.
Это изменение отревьюило 2 человека.. То есть втроем, с учетом того что сам девелопер тоже правил, они не смогли нормально скобочки сосчитать, и их никак не удивила эта странная констркция со сравнением двух энумов..
Старый 17.07.2017, 21:48   #4  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Если бы дело было только в этом.
Это изменение отревьюило 2 человека.. То есть втроем, с учетом того что сам девелопер тоже правил, они не смогли нормально скобочки сосчитать, и их никак не удивила эта странная констркция со сравнением двух энумов..
А сколько ещё изменений было в этом ревью ? Там же есть зависимость между длинной изменения и качеством его ревью
Старый 18.07.2017, 11:27   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от skuull Посмотреть сообщение
А сколько ещё изменений было в этом ревью ? Там же есть зависимость между длинной изменения и качеством его ревью
Еще где-то 10 других изменений. Я их побоялся смотреть
Старый 18.07.2017, 00:27   #6  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Если бы дело было только в этом.
Это изменение отревьюило 2 человека.. То есть втроем, с учетом того что сам девелопер тоже правил, они не смогли нормально скобочки сосчитать, и их никак не удивила эта странная констркция со сравнением двух энумов..
Не в скобках дело, а в полном абзаце мозга. Никакие тесты не помогут если мы проверяем потенциально на ноль одно значение, а делим на другое. При втором вызове функция может возвратить другое значение. C вероятностью практически нулевой конечно, но мы же программисты или где

X++:
AmountMST cost = this.itemPrice(ModuleInventPurchSales::Invent);
    AmountMST sales = this.itemPrice(ModuleInventPurchSales::Sales);
    ...

    //Avoid division by zero
    if (sales == 0)
    {
        mcrCatalogAreaAnalysisTmp.CogsPercent = 0;
    }
    else
    {
        mcrCatalogAreaAnalysisTmp.CogsPercent = cost / sales;
    }
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 18.07.2017, 03:30   #7  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Не в скобках дело, а в полном абзаце мозга. Никакие тесты не помогут если мы проверяем потенциально на ноль одно значение, а делим на другое.
Да не, он пытался проверить тоже самое значение которое попадет в знаменатель. Но зачем-то решил его вычислить повторно и при этом перепутал местоположение скобки. Код должен был выглядеть вот так:
if (this.itemPrice(ModuleInventPurchSales::Sales) == 0)
Такое случается по запаре. Ничего особенного.
Но вот фикс шедеврален! Это же человек не просто колотил код на скорость. Это вдумчиво выловили баг, подумали над его природой и исправили. Кажется я начинаю понимать почему местный саппорт так неохотно репортит даже доказанные баги с указанием где что и как поломано в продуктовую команду.
__________________
Isn't it nice when things just work?
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 18.07.2017, 13:02   #8  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
870 / 637 (23) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от macklakov Посмотреть сообщение
Но вот фикс шедеврален! Это же человек не просто колотил код на скорость. Это вдумчиво выловили баг, подумали над его природой и исправили.
Как раз не вдумчиво. Механически заменили константу 0 на его аналог в енуме. Это чистой воды копи-пастинговый, рутинный подход. Программисты любят копи-паст, как ни крути.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/
Старый 18.07.2017, 16:49   #9  
VORP is offline
VORP
Участник
Аватар для VORP
 
146 / 95 (4) ++++
Регистрация: 26.05.2006
Да нет, не копи паст это. Просто человек пишет компилятор, фреймворк для екстеншенов для енумов. Он не знает и/или скорее всего не хочет знать ничего про цены и прочие MCR - этим кодом владеет команда MCR(условно говоря). Сейчас он поменял что-то в компиляторе и у него в некоторых местах ошибки компилятора. Править чужой код он не может, но надо сделать чтоб компилилось. Вот он и заменил цифру на енум, хоть оно и бестолково. По хорошему должен был кинуть багу на MCR что код походу неправильный. Но опять же, не факт что команда MCR будет править код, ведь клиенты баги не репортят, а там мало ли что кому кажется.
За это сообщение автора поблагодарили: Vadik (1), fed (1), macklakov (1), trud (1), Ace of Database (1).
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

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