Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
emp.docx
Скачиваний:
32
Добавлен:
17.12.2018
Размер:
1.44 Mб
Скачать
  1. Описати та пояснити використання Visual Studio для проведення рефакторингу.

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

Изменения при рефакторинге кода вносятся пошагово, мелкими операциями. Переименовать функцию, разбить ее на несколько подфункций, изменить сигнатуру метода - все эти операции легко выполнить так, чтобы не занести в код ошибок. Однако совокупный эффект ряда таких элементарных операций может быть весьма значительным - от упрощения структуры кода, до полного изменения архитектуры разрабатываемой программы.

Особую популярность рефакторинг приобрел в последние десять лет с развитием экстремального программирования и других agile-методик программирования, в которых рефакторинг является частью цикла разработки программного обеспечения. Между тем, проведение рефакторинга вручную - достаточно утомительное занятие. Например, чтобы изменить порядок следования параметров в методе класса, мало изменить сигнатуру метода - необходимо пройти по всему коду программы и модифицировать все вызовы данного метода. Изменение тривиальное, но требует активного "копипастинга".

Спрос рождает предложение, и в последние годы производители средств разработки стали внедрять в свои программные продукты средства, автоматизирующие и упрощающие проведение рефакторинга. Среда Visual Studio впервые обзавелась такими средствами в версии VS2005. Разработчики, использующие C# и J#, получили в свое распоряжение следующий набор инструментов:

Rename - переименование имени переменной, метода, класса и т.п. с автоматическим обновлением всех ссылок на это имя в коде;

Extract method - оформление выделенной части кода в новый, отдельный метод;

Encapsulate field - создание свойства, скрывающего выбранную переменную-член класса;

Extract interface - создание интерфейса на основе списка методов класса;

Promote local variable to parameter - вынесение локальной переменной в параметр метода;

Remove/Reorder parameters - удаление параметров метода и изменение порядка их следования с автоматическим обновлением всех ссылок в коде на данный метод.

Реализованный набор инструментов, конечно же, упростил жизнь разработчикам, однако он далеко не идеален. Из недостатков можно отметить:

отсутствие поддержки C++ и VB (в VS2008 ее все так же нет);

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

набор средств рефакторинга минимален, ряд полезных инструментов в нем отсутствует;

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

К счастью, в Microsoft Visual Studio издавна реализована прекрасная поддержка плагинов, с помощью которых можно расширять ее возможности. В частности, существует множество плагинов, как платных, так и бесплатных, дополняющих и улучшающих стандартный набор инструментов рефакторинга в студии. Попробуем разобраться, кто из них что умеет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]