Показать сообщение отдельно
Старый 14.11.2014, 16:22   #6  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от belugin Посмотреть сообщение
Для AX есть некий автоматизированный анализ кода в Lifecycle Services

Сам не пробовал
Я пробовал, могу немного рассказать.

1. Тул предлагает загрузить модель для анализа
2. В течение нескольких часов производится закачка\компилирование модели и запускается анализ.
3. Неожиданно, для казалось бы полностью вычищенной модели, получаем кучу ошибок\замечаний.
4. При анализе видим, что найденных 90% замечаний неоднозначные.

Например:
  • Если анализатор "видит" CRUD операции с таблицами и не встречает выше по коду "ttsbegin" в текущем методе, вываливает это как ошибку\замечание, при этом не учитывая, что метод целиком уже может выполняться в рамках транзакции. Отсюда получаем ругань чуть ли не на каждый метод где есть CRUD.
  • Если вы что-то воткнули в стандартный код, то все грехи стандартного кода будут расценены как ваша кастомизация со всеми вытекающими.
  • В исполняемом на сервере коде нельзя пользоваться такими функциями как info\error\setprefix. (ну клиентскими Box:: само собой).
  • Анализатор требует переноса ВСЕХ CRUD операций на таблицы\классы, причем обязательно в серверном исполнении. Т.е. select на форме либо клиентском классе уже не напишешь, даже если это будет временная таблица.
  • Для CRUD операций требуется обязательно предшествующие validateWrite\Delete, даже если таблица временная, использующаяся как некий буфер.
  • Требует кэширования всех дисплей методов, даже если метод закэширован (баг), даже если метод написан на датасорсе.

Есть и много полезных замечаний.

Технически, тул реализован незамысловато. Где-то в облаке крутится аксапта, куда загружается ваша модель (отсюда обязательность совпадения версий вашей модели с версией тула и длительное время на компиляцию). В аксапте написан некий BestPractice extention, который выполняет проверку. По результирующему отчету даже видно, что он выгружается их таблицы SysCompilationOutput.

В общем тул пока сыроват, но в целом полезен, если не воспринимать все замечания в лоб.

Ну а вообще, можно было включить этот BestPractice extention в рамки стандартной системы и не заниматься глупостями в виде отдельных web приблуд.
За это сообщение автора поблагодарили: mazzy (2), belugin (3), sukhanchik (3), Krash (1), MikeR (2).