Осенью прошёл курс и получил ключ. Но т.к. уже имел действующую подписку, то ключом не воспользовался. Сейчас захожу сюда, а про DreamSpark вообще ни слова. Где же мой ключ? |
Жизненный цикл разработки приложения в Visual Studio 2013
8.3. Разработка и реорганизация кода: рефакторинг
Основы разработки кода и соответствующей поддержки среды рассмотрены в "Управление решениями и проектами в Visual Studio 2013" . Код разрабатывается по выбранному виду проекта и соответствующему шаблону кода, поставляемому средой. При этом обеспечивается проверка правильности синтаксиса вводимого кода, автоматическое завершение кода, а также навигация по коду (например, переход к определению некоторой сущности от ее использования пунктом контекстного меню Go to definition). Все это существенно увеличивает производительность работы программистов.
Особое место при разработке и модификации кода занимает рефакторинг [23] - систематическая модификация и улучшение существующего кода, без коренного изменения его семантики, с помощью автоматических преобразований, осуществляемых средой.
Типичный пример - изменение имени метода. Задача состоит в том, чтобы изменить имя метода и в его определении, и во всех его использованиях. В общем случае, если проект достаточно велик, вручную выполнять решение подобной задачи весьма неудобно. Почти наверняка при этом какие-либо использования метода будут забыты, и к ним придется возвращаться уже после получения ошибок при компиляции (сборке) проекта.
Рассмотрим рефакторинг в среде на примере простого консольного приложения ( рис. 8.15):
В программе определен класс Program, статический метод Main и метод экземпляра K с аргументом X.
Пусть необходимо изменить имя метода K на M (естественно, не только в определении, но и во всех его использованиях).
Текущую позицию в редакторе текста устанавливаем на первую строчку определения метода K (заголовок) и выбираем в контекстном меню пункт Refactor ( рис. 8.16):
Далее выделяем имя метода - K и затем выбираем в контекстном меню пункт Refactor / Rename (если мы забыли выделить имя метода, среда подскажет нам, что это необходимо сделать) - см. рис. 8.17:
В окне рис. 8.17 задаем новое имя метода - M и выбираем действие Preview Changes (оно выбрано по умолчанию) - см. рис. 8.18.
Поскольку все предлагаемые изменения нас устраивают, нажимаем Apply.
На рис. 8.19 показан результат рефакторинга.
Чтобы убедиться в правильности выполненных средой преобразований, рекомендуем сделать сборку проекта. В окне Refactor (внизу) дана информация о том, какие преобразования произведены.
Среда VS 2013 предоставляет следующие виды рефакторинга:
- Rename - замена имени сущности;
- Extract Method - извлечь метод: преобразовать выделенный фрагмент кода в метод с заданным именем;
- Encapsulate Field - инкапсулировать поле, сделав его приватным, но добавить public-свойство для доступа к нему;
- Extract Interface - извлечь интерфейс: выделить текст класса и автоматически сформировать для него соответствующий интерфейс (если это возможно);
- Remove parameters - удалить часть параметров метода;
- Reorder parameters - изменить порядок параметров метода.
Перечень преобразований весьма впечатляющий, однако, как обычно, хотелось бы большего - например, рефакторинга с целью улучшить надежность и безопасность кода, Уверен, что это - дело ближайшего будущего и будет реализовано в новых версиях Visual Studio.
Заметим, что большие возможности преобразований типа рефакторинга предоставляет аспектно-ориентированное программирование [9], так как оно направлено именно на систематические трансформации программ.