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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.03.2021, 13:24   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
2-й файл - выгружен весь проект целиком.
USRonly - выгружен только usr слой. - Кому-то возможно удобнее будет себе merge делать.
merge? с объектами, которые имеют "чужой" суффикс _MRC?! Оптимист

ага. понял. спасибо.

я так понимаю, что ты пытаешься улучшить стандартный класс Class_SysSourceNameWash, чтобы он чего-то умное делал. Но при этом по-прежнему используешь опасный strdel и безумный strpoke...

судя по названию проекта, меняешь регистр букв в объектах.
а зачем? и почему только в методах? есть ли замена и в свойствах?
а главное, зачем?

а может ты форматтер кода делаешь?
prettier, только для Аксапты? Давно хочется
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 04.03.2021 в 13:31.
Старый 04.03.2021, 14:07   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
merge? с объектами, которые имеют суффикс _MRC?! Оптимист
Имелись в виду классы
SysSourceNameWash
SysSourceUpdate

там стандартный код правил. Возможно у кого-то есть свои правки или версия отличается.

Цитата:
Сообщение от mazzy Посмотреть сообщение
я так понимаю, что ты пытаешься улучшить стандартный класс Class_SysSourceNameWash, чтобы он чего-то умное делал.
Не только. У нас на проекте есть много Legacy кода, который написан без соблюдения требований по регистру символов. Компилятору все равно - он регистронезависимый. Но выглядит некрасиво. Я попробовал применить этот стандартный инструмент, чтобы выправить ситуацию в старом коде, чтобы не резало глаз.

Попутно выяснилось что инструмент содержит немного багов:

1. Некорректно обрабатывает методы, в которых есть строки длиннее 250 символов, как следствие такие методы остаются необработанными, да еще и ругается на них каждый раз при запуске.

2. Ошибочно преобразует ссылки в коде на имена полей таблиц у которых в начале более 2 заглавных символов (например someTable.ISOcode испохабил - привел к нижнему региструsomeTable.isOcode, хотя не надо было трогать, т.е. не везде корректно учитывал область применения - преобразовывал первые символы к нижнему регистру там где не надо)

3. Финальное сохранение было сделано через методы xUtilElements:: которые обращались к тормозной вьюхе UtilElements (по 1 секунде на запрос) что при массовой обработке думало по полдня.

4. Кажется (точно уже не помню) некорректно обрабатывались методы на формах (лукапы, методы датасорсов итп) - (вроде бы они то ли вообще не обрабатывались то ли ссылки на них не обрабатывались)

5. Правильно обрабатывались стандартные зарезервированные слова, для которых в ветке \System Documentation\Reserved Words
почему-то были заданы большие буквы в camel стиле (ttsBegin ttsCommit ttsAbort forUpdate итп) - преобразовывались в нижний регистр, но сам редактор при вводе подставлял их неверно - как в AOT. Редактор исправить невозможно, пришлось править класс, чтобы было безобразно, но единообразно.

6. Из-за баги некорректно шла обработка методов содержащих макросы, так что исходный код всего метода оставался неизменным.

7. Не умеет корректно обрабатывать макросы. - Не меняет их содержимое.

и фич:

8. Обрабатывает все подряд, вместо конкретного слоя. (я не хотел править стандартный код, только то что на usr мы сами наваяли)

9. Запускать его надо 2 раза подряд (при 1-м запуске изменяет имена методов и переменных, при втором ссылки на методы)

пп 1-6 исправил.
п. 7 непонятно как исправлять, но это некритично.

п.8 исправил.
п.9 - просто надо учитывать и запускать обработку дважды.

В целом код обработки писал параноик, перед внесением изменений делается сравнение без учета регистра - отличается ли исходный код до изменений и после и если отличается, то изменения не вносятся. Так что запускать можно безопасно - сломать ничего не должен.

Цитата:
Сообщение от mazzy Посмотреть сообщение
...Но при этом по-прежнему используешь опасный strdel и безумный strpoke...
Это не я. Это в инструменте так написано. Я там чего-то своего почти не добавлял. - Исправил баги и все.


Цитата:
Сообщение от mazzy Посмотреть сообщение
судя по названию проекта, меняешь регистр букв в объектах.
а зачем? и почему только в методах? есть ли замена и в свойствах?
а главное, зачем?

а может ты форматтер кода делаешь?
форматтер кода не делаю.
Просто в Legacy коде была свистопляска.
методы то с большой то с маленькой буквы написаны. Имена переменных то с большой то с маленькой. Имена типов / классов / таблиц / полей таблиц в таком же стиле, т.е. отсутствии стиля. Где в лес где по дрова.

Ну, а этот инструмент это все исправляет в соответствие со стандартом. Имена самих узлов в АОТ кроме имен методов он не трогает. Только исходный код правит.

Из полезного - читаемость код улучшилась.

Последний раз редактировалось Logger; 04.03.2021 в 14:11.
Старый 04.03.2021, 14:18   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
prettier, только для Аксапты? Давно хочется
На такое я не замахивался.
Не до того.
Работу работать надо.

Стандартный аксаптовский преобразователь неплохо улучшает внешний вид и читаемость кода.
Старый 04.03.2021, 14:41   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
пп 1-6 исправил.
п. 7 непонятно как исправлять, но это некритично.

п.8 исправил.
п.9 - просто надо учитывать и запускать обработку дважды.
а... понятно.

Цитата:
Сообщение от Logger Посмотреть сообщение
В целом код обработки писал параноик, перед внесением изменений делается сравнение без учета регистра - отличается ли исходный код до изменений и после и если отличается, то изменения не вносятся. Так что запускать можно безопасно - сломать ничего не должен.
...
Это не я. Это в инструменте так написано. Я там чего-то своего почти не добавлял.
я ж не наезжаю. просто я в свое время не стал использовать этот Wash именно из-за этих странностей. боюся я таких странных.
по-моему Wash делал не параноик, а тот, кто ни аксапту, ни джаву не знает.
по-моему ощущению, какой-то человек с регистрозависимого языка

Цитата:
Сообщение от Logger Посмотреть сообщение
форматтер кода не делаю.
жаль. очень жаль.

Цитата:
Сообщение от Logger Посмотреть сообщение
Просто в Legacy коде была свистопляска.
методы то с большой то с маленькой буквы написаны. Имена переменных то с большой то с маленькой. Имена типов / классов / таблиц / полей таблиц в таком же стиле, т.е. отсутствии стиля. Где в лес где по дрова.
ну да, ну да. точку с запятой после объявления не ставят, параметры метода на новую строку не переводят, фигурные скобки после if пропускают, пробелы ставят после скобок, а не до...
Безобразие.
Может все-же форматер?

Цитата:
Сообщение от Logger Посмотреть сообщение
Ну, а этот инструмент это все исправляет в соответствие со стандартом.
всё?!

Цитата:
Сообщение от Logger Посмотреть сообщение
Имена самих узлов в АОТ кроме имен методов он не трогает. Только исходный код правит.
Я не про имена узлов в AOT, а значения в свойствах объектов - название типа, название menuItem, используемая таблица и т.п.

Цитата:
Сообщение от Logger Посмотреть сообщение
Из полезного - читаемость код улучшилась.
...
Стандартный аксаптовский преобразователь неплохо улучшает внешний вид и читаемость кода.
и это - хорошо!
__________________
полезное на axForum, github, vk, coub.
Старый 04.03.2021, 14:49   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
Я не про имена узлов в AOT, а значения в свойствах объектов - название типа, название menuItem, используемая таблица и т.п.
Не делает.
Можно дописать, но я не стал. Мне кажется, что это некритично. Главное в исходном коде поправить. Именно исходники читаем бОльшую часть времени.
Старый 04.03.2021, 14:57   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
всё?!
Ну, не вообще все, а перечисленное, то что относится к регистру символов. Он же даже в меню назван "Смена регистра в исходном коде". Так что все честно, без обмана.
Старый 04.03.2021, 15:28   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
по-моему Wash делал не параноик, а тот, кто ни аксапту, ни джаву не знает.
по-моему ощущению, какой-то человек с регистрозависимого языка
Вообще с регистронезависимостью беда.
У многих программистов проявляется инерция мышления и они пытаются с регистронезависимым языком обращаться как с регистрозависимым.

Например, знаменитый инструмент
JAEE.AX.EditorExtensions.HighlightWord
написан как будто X++ это регистрозависимый язык!

Из-за этого подсветка в коде работает с учетом регистра и подсвечивает не все.
Т.е. пользоваться невозможно.

Я не поленился, нагуглил все форки этого инструмента.
Ни в одном нет регистронезависимого сравнения.
Editor extensions и регистр символов

Написал одному из авторов с просьбой поменять, так он в ответ сказал что не видит проблемы, надо, мол, просто исходный текст в аксапте поменять и все ок, т.е. проявил инерцию мышления, по привычке пытается работать с X++ как с регистрозависимым языком.
https://github.com/jaestevan/AX2012-...sions/issues/1

В итоге, сам перекомпилял dll-ку чтобы регистр не учитывался.
https://axforum.info/forums/attachme...7&d=1557923693

Спасибо Martin Dráb за подсказки по исправлению.
За это сообщение автора поблагодарили: mazzy (2).
Старый 04.03.2021, 16:10   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
Например, знаменитый инструмент
JAEE.AX.EditorExtensions.HighlightWord
написан как будто X++ это регистрозависимый язык!
А... ты выделение одинаковых слов в редакторе пытаешься заставить работать...
Понятно. Дело хорошее.
__________________
полезное на axForum, github, vk, coub.
Старый 04.03.2021, 16:16   #9  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
А... ты выделение одинаковых слов в редакторе пытаешься заставить работать...
Понятно. Дело хорошее.
Не, это я уже победил раньше тем, что пересобрал dll-ку, отключив регистрозависимость сравнения.

Я улучшаю читаемость кода.
Реально удобнее стало.
И приятнее для восприятия.
Теги
sourceline

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxse: November 2017 Release – Dynamics AX 2012 R3 Blog bot DAX Blogs 0 08.12.2017 10:51
dynamicsaxse: Dynamics AX 2012 R3 cumulative updates Blog bot DAX Blogs 0 15.03.2017 18:11
AX 2012 R3: сохранение масштаба в окне редактора кода alex55 DAX: Программирование 2 02.03.2016 01:26
DAX: Microsoft Dynamics AX 2012 R3 is now available! Blog bot DAX Blogs 1 02.05.2014 23:00
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11

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

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

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