#refactoring #powerbuilder #powerbuilder.net
#рефакторинг #powerbuilder #powerbuilder.net
Вопрос:
Перенос устаревшего кода PB на .NET era может потребовать серьезного рефакторинга, чтобы выполнить работу должным образом. Например, в нашем коде есть некоторые остатки до userobject, а также устаревшие функции, такие как MDI, PBNI и т. Д. Мне интересно, какую помощь мы получим от оболочки VS, когда дело доходит до возможностей рефакторинга — разбиения длинных функций на отдельные, поиска всех вызывающих определенную функцию или событие и т. Д.
Классическая IDE ужасна для таких задач. Упростило ли их использование VS now?
Ответ №1:
Ответы на ваши вопросы по большей части «ДА«, но не такие классные, как в Visual Studio. IDE PB работает днем и ночью лучше, чем раньше, просто не дотягивает до полной среды разработки Visual Studio IDE.
В PB встроен некоторый базовый рефакторинг, например, можно легко выполнить что-то вроде переименования функции во всем проекте. Вот результат, полученный при переименовании функции в одном из моих проектов. И у меня был открыт один из файлов, оболочка Visual Studio обнаружила его и попросила меня перезагрузить локальный файл.
Replace all "ConnectDB", "DBConnect", Subfolders, Find Results 1, "Entire Solution"
H:DevPBWSpb_data.pblpb_data.sra(42,18):liRtn = gnv_data.DBConnect()
H:DevPBWSpb_data.pbln_data_factory.sru(29,25):public function integer DBConnect ()
H:DevPBWSpb_data.pbln_data_factory.sru(38,14):liRowCount = DBConnect()
H:DevPBWSpb_data.pbln_data_factory.sru(103,25):public function integer DBConnect ();
Total replaced: 4 Matching files: 2 Total files searched: 13
PowerBuilder 12.5.NET имеет возможность «Перейти к —> Определению» для перехода к объявлениям функций / классов. Это не так круто, как Visual Studio, поскольку функции PowerBuilder не такие «открытые», как .NET framework, поэтому вы не можете щелкнуть правой кнопкой мыши по функции GetItemString и ожидать увидеть внутренние объявления.
Я еще не видел никаких функций типа анализа воздействия, таких как возможность видеть, где вызываются ваши функции, но я еще не смотрел слишком внимательно.
Из положительных моментов следует отметить, что Sybase внедрила потрясающую функцию intellisense / code completion Visual Studio. Он отзывчивый, точный и предсказуемый, как при работе в среде IDE Visual Studio с C #. PB.NET функции наряду с приятными элементами оболочки Visual Studio снова делают разработку PB увлекательной.
Комментарии:
1. Это хорошие новости! Является ли функция rename, о которой вы упоминаете, простой заменой строки, или она действительно понимает тот факт, что она должна заменить определенную функцию определенного класса? А именно, если бы в вашем коде была строка «I am ConnectDB», была бы заменена часть «ConnectDB», или она была бы (правильно) оставлена как есть?