Показать сообщение отдельно
Старый 28.10.2010, 08:00   #42  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Снова хочется вспомнить статью Джоэла Спольски "Где грязь, там и деньги" (цитировалась тут). Нет у этой сложной задачи простого и ясного решения - нужно повозиться, найти все "частные случаи" - тогда, может, появится полуэвристическая методика, которая, впрочем, не факт что будет работать на 100% в других условиях. За эту "возню в грязи" клиент и платит деньги хотя если по результатам родится некий инструмент, облегчающий решение таких задач, то будет здорово.Полностью поддерживаю.
Платит-платит.
И давай не будем путать сложные задачи с нерешаемыми задачами.
То, что задача сложная - вовсе не означает, что с ней надо возится бессистемно.

Вернемся таки к методике.
Похоже она таки есть. И сводится к замене в текстовом XPO-файле.

Предлагаю на обсуждение черновой вариант:
0. Подготовительная фаза
0.1. выгружаем строки из формы Пути к объектам в Excel-таблицу (со слоями)
0.2. отделяем пути от названия объектов
0.3. в Excel копируем названия объектов во вторую колонку
0.4. [опционально] оставляем только строчки с названиями объектов, которые могут быть переименованы (изо всех слоев, все названия). Например, оставляем (названия форм, датасорсов, методов), названия (таблиц, полей, групп, индексов), названия menuItem и т.п. Убираем label, documentation, контролы внутри форм, элементы внутри enum и т.п.
1. план переименования
1.1. во второй колонке Excel проводим черновое переименование объектов
1.2. во второй колонке Excel формулой находим возможные (с учетом путей) конфликты, дубликаты
1.3. разрешаем конфликты, вводя суфиксы или сохраняя префиксы
1.4. повторяем 1.1-1.4 пока не будут разрешены все конфликты переименования
1.5. в результате получили план переименования: в большинстве объектов префиксы будут удалены, но в некоторых объектах названия изменятся более сложным образом
2. Исполнительная фаза (воможен алгоритм от lev)
2.1. выгружаем слой в XPO
2.2. переименовываем согласно плана переименования (переименовываются как свойства, так и строки кода). Можно выполнять как вручную, так и с помощью каких-нибудь интеллектуальных макросов (типа Emacs). Можно и программку написать
2.3. загружаем измененный XPO
2.4. если во время загрузки получаем конфликты, возвращаемся на шаг 1.1.
3. Проверка
3.1. проводим глобальную компиляцию с уровнем детализации = 4 и со включением заранее выбранного набора рекомендаций.
3.2. если компиляция выдала ошибки и/или рекомендации - разбираемся с ними (возможно возвращаясь на шаг 1.1)

примерно так.
т.е. все-таки работаем с текстовым XPO.
но не механически, а на основании заранее подготовленного плана.

инструменты:
= excel
= xpo
= какой-нибудь продвинутый текстовый редактор, который умеет делать массовую замену по плану (текстовый файл)
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: lev (2).