Всем привет!
Неоднократно приходилось слышать такое утверждение: в лиспе возможности рефакторинга, профилирования, отладки и многого другого достигаются средствами самого языка. Т.е. без использования вспомогательных средств, нередко усложнённых, как например в Eclipse или IDEA для Явы. В принципе, я готов в это поверить, т.к. язык очень могучий, и всё, что я до сих пор освоил в нём это лишь верхушка айсберга. Поэтому хочу попросить местных гуру-лисперов продемонстрировать вышесказанное на двух простеньких примерах,
1. Рефакторинг «Смена сигнатуры». Пусть есть функция, которая вызывается в сотне мест. Понадобилось а) переименовать функцию, б) добавить параметр. Хочеться, чтобы вызовы функции поменялись на новые во всех местах, где она используется. В место недостающего параметра подставлять NIL, ну или какие-то конкретные значения в зависимости от контекста.
2. Рефакторинг «Подъём метода». Пусть есть класс А, и наследующий от него класс В (классы понимаются в терминах CLOS, разумееться). Хочется переместить некий метод из класса В в класс-родитель А, или наоборот, это будет уже «спуск метода».
ХОтелось бы рассмотреть возможность подобного рефакторинга как в случае работы с образом (например, подключения к работающией системе через REPL), так и в случае с деревом исходных текстов в файловой системе.
Спасибо заранее!
Форум —
Development
