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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2012, 09:40   #1  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Мертвый код
Существует ли встроенный в AX функционал для глобального поиска мёртвого кода (элементов, которые не используются) в репозитарии?
Старый 18.10.2012, 10:02   #2  
veps is offline
veps
Участник
 
87 / 26 (1) +++
Регистрация: 22.03.2006
Адрес: хабаровск
можно убрать лишнии пробелы
За это сообщение автора поблагодарили: bodeaux (1).
Старый 18.10.2012, 10:36   #3  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Несовсем понятно:
1. Хочется в коде почистить? -допустим объявлена переменная или таблица и не используется в коде
2. Хочется объекты репозитария почистить? - к примеру создана таблица и забыта, нигде не участвует
Старый 18.10.2012, 11:27   #4  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Цитата:
Сообщение от Player1 Посмотреть сообщение
Несовсем понятно:
1. Хочется в коде почистить? -допустим объявлена переменная или таблица и не используется в коде
2. Хочется объекты репозитария почистить? - к примеру создана таблица и забыта, нигде не участвует
И то и другое, и можно без хлеба. Конечно, чистка репозитария интересует гораздо больше, т.к. если код в методах можно почистить кустарными способами, то как чистить мусор из AOT вообще неясно.
Старый 18.10.2012, 11:34   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от bodeaux Посмотреть сообщение
Существует ли встроенный в AX функционал для глобального поиска мёртвого кода (элементов, которые не используются) в репозитарии?
Цитата:
Сообщение от Player1 Посмотреть сообщение
Несовсем понятно:
1. Хочется в коде почистить? -допустим объявлена переменная или таблица и не используется в коде
2. Хочется объекты репозитария почистить? - к примеру создана таблица и забыта, нигде не участвует
На самом деле - функционал существует. Называется проверка на Best Practice (на соответствие рекомендациям). Если построены перекрестные ссылки и отработана компиляция с проверками на Best Practice (Уровень 4 у компилятора) - то тогда среди ошибок (или предупреждений - не помню) по рекомендациям можно увидеть фразы типа "Переменная объявлена, но нигде не используется" или "Метод ххх нигде не используется".

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

Кстати, нужно учесть - что данный способ может быть неточен. Если метод "не засветился" в перекрестных ссылках - то он может быть вызван через Dict*-классы или просто через переменную типа Object. А отследить вызов метода в Runtime нельзя даже вручную (особенно, если этот вызов "глубоко закопан").
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: bodeaux (1).
Старый 18.10.2012, 11:34   #6  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
А если выставить уровень компилятора на 4 и запустить глобальную перекомпиляцию?
невостребованные куски кода оно точно найдёт
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: bodeaux (1).
Старый 18.10.2012, 12:00   #7  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,740 / 404 (17) +++++++
Регистрация: 23.03.2006
непонятна цель мероприятия. заняться нечем? хочется по феншую?
Старый 18.10.2012, 13:01   #8  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от ice Посмотреть сообщение
непонятна цель мероприятия
Та же, с которой в доме полы моют и мусор выносят, я полагаю. Я к примеру модификации с "Переменная объявлена, но нигде не используется" обратно заворачиваю
__________________
-ТСЯ или -ТЬСЯ ?
Старый 18.10.2012, 13:03   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Мертвый код требует ухода - надо его поднимать на новые версии, поддерживать его компилируемость и он мешается в перекрестных ссылах.

Так как в аксапте можно использовать reflection для вызова методов, то мертвый код модно определить только внутри непубличных методов.
Старый 18.10.2012, 13:15   #10  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,740 / 404 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от belugin Посмотреть сообщение
Мертвый код требует ухода - надо его поднимать на новые версии, поддерживать его компилируемость и он мешается в перекрестных ссылах.

Так как в аксапте можно использовать reflection для вызова методов, то мертвый код модно определить только внутри непубличных методов.
если следовать определению мертвого кода из топика, то объявленные и не использованные переменные (типы, методы и проч) особо не мешают в системе (и легко находятся и удаляются при острой необходимости), в системе обычно мешает всеми забытый и неиспользуемый функционал, который найти не так просто, а вычистить бывает еще сложней
Старый 18.10.2012, 13:26   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
мочему бы не удалить то, что мешает "не особо", если это сделать легко. Кстати, неиспользуемые переменные в 2012 уже ошибка BP (толи перед выпуском 2009, то ли 2012 их пересортировали по важности)
Старый 18.10.2012, 13:30   #12  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,740 / 404 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от belugin Посмотреть сообщение
мочему бы не удалить то, что мешает "не особо", если это сделать легко. Кстати, неиспользуемые переменные в 2012 уже ошибка BP (толи перед выпуском 2009, то ли 2012 их пересортировали по важности)
если это делать сразу по завершению модификации, то нужно. а вот если ставить себе цель найти такие переменные в системе, то не вижу смысла
Старый 18.10.2012, 13:51   #13  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
Мертвый код требует ухода - надо его поднимать на новые версии, поддерживать его компилируемость и он мешается в перекрестных ссылах
Цитата:
Сообщение от ice Посмотреть сообщение
если это делать сразу по завершению модификации, то нужно. а вот если ставить себе цель найти такие переменные в системе, то не вижу смысла
Во-первых, как было правильно сказано - код требует ухода. К тому же - чем больше кода - тем сложнее в нем разбираться (больше читать).
Во-вторых - при таком подходе - проще обнаружить неиспользуемый функционал, о котором не имеешь представления. А вот уже удаление лишнего функционала (который не нужен и не является стандартом) - это уже штука полезная.
В-третьих - можно просто проанализировать список мест (без правки кода). Это даст возможность оценить необходимость и сроки/стоимость этих работ.
В-четвертых - это один из способов получения знаний о системе - если изначально таких знаний нет.
__________________
Возможно сделать все. Вопрос времени
Старый 19.10.2012, 09:33   #14  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Господа, подскажите, как в редакторе кода включить отображение номеров строк.
Старый 19.10.2012, 09:54   #15  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
В редакторе мертвого кода?
Старый 19.10.2012, 09:56   #16  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
1. Обновиться до Ax 2012
2. Нажать спецкнопку в тулбаре редактора
За это сообщение автора поблагодарили: sukhanchik (2), bodeaux (1).
Старый 19.10.2012, 10:50   #17  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Цитата:
Сообщение от belugin Посмотреть сообщение
1. Обновиться до Ax 2012
2. Нажать спецкнопку в тулбаре редактора
Можете одолжить генератор лицензий?
Старый 19.10.2012, 11:13   #18  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
нет
Старый 20.10.2012, 11:49   #19  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
ax-erp: Search un-used EDT'S using X++
вот и чистка EDT к примеру
За это сообщение автора поблагодарили: bodeaux (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
"Инвентаризационный код" в группах инвентаризации и создание строк инвентаризации lev DAX: Функционал 0 11.10.2011 09:49
Channel9: Peter Villadsen and Gustavo Plancarte: X++ to MSIL Blog bot DAX Blogs 30 24.08.2010 17:11
Код палеты Varmen DAX: Функционал 10 27.03.2008 15:54
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 5 07.09.2004 17:24
Ошибка "необходимо заполнить 'основной код сотрудника' " alpin DAX: Функционал 2 04.12.2003 16:28

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

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

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