Автоматизация для людей: Совершенствование кода с помощью плагинов Eclipse

Рассмотрение качества автоматического кода в Eclipse с помощью пяти полезных плагинов

Вот если бы можно было предугадать потенциальные ошибки в коде, который вы создаете, перед тем как создать его. Что интересно, существуют плагины Eclipse для таких инструментальных средств как JDepend и CheckStyle, которые помогают найти проблемы до того как они обнаружатся в готовой программе. В этой части "Автоматизации для людей" эксперт по автоматизации Поль Дувол представляет примеры установки, управления и использования статических аналитических плагинов в Eclipse, которые вы можете использовать, чтобы предотвратить появление ошибок заранее - в ходе разработки.

Поль Дувол, руководитель технического отдела, Stelligent Incorporated

Поль Дувол (Paul Duvall) является руководителем технического отдела в Stelligent Incorporated, фирма помогает компаниям следить за качеством программных продуктов с помощью эффективных стратегий тестирования и методов непрерывной интеграции, которые позволяют командам раньше и чаще контролировать и улучшать качество кода. Поль также известный автор Инструментария UML™ 2 и в настоящее время является соавтором книги Непрерывная интеграция: улучшение качества программ и уменьшение риска (Addison-Wesley).



28.06.2007

Об этой серии

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

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

В августовском выпуске этой серии, я определил, что внедрение инструментальных средств проверки в процесс создания программы (например, Ant или Maven) может стать последовательным подходом в выявлении потенциальных ошибок. Также этот подход запускает работу интегрированной системы обработки данных, которая также слегка реакционна. Вы либо должны создавать локальное программное обеспечение, либо ждать запуска непрерывной интеграции (Continuous Integration). При использовании плагинов Eclipse, вы можете обнаружить некоторые нарушения до того, как вы создадите и программу и интегрируете ее через непрерывную интеграцию. Таким образом запускается то, что я называю прогрессивным программированием, которое в свою очередь запускает ряд операций, проверяющих качество кодирования в ходе работы - трудно найти что-либо более быстрое!

Эта статья описывает так называемую "большую пятерку" в области анализа кода:

  • стандарты кодирования
  • дублирование кода
  • покрытие кода
  • анализ зависимости
  • контроль сложности

Области этого исследования можно описать с помощью следующих удобных плагинов Eclipse:

  • CheckStyle: для стандартов кодирования
  • PMD's CPD: позволяет обнаружить дублирование кода
  • Coverlipse: определяет покрытие кода
  • JDepend: обеспечивает анализ зависимостей
  • Eclipse Metrics plugin: эффективно обнаруживает сложности

Eclipse - не система сборки программ

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

Установка плагинов Eclipse

Установка плагинов Eclipse проста - всего несколько шагов. Однако прежде чем начать, нужно загрузить URL. В таблице 1 данной статьи помещен список плагинов, которые я использую:

Таблица 1. Список плагинов проверочных кодов и установочных URL
ИнструментЦельСсылка на Eclipse-плагин
CheckStyleАнализ стандартов кодированияhttp://eclipse-cs.sourceforge.net/update/
CoverlipseТест покрытия кодаhttp://coverlipse.sf.net/update
CPDОбнаружение копирования/вставкиhttp://pmd.sourceforge.net/eclipse/
JDependПакет для анализа зависимостейhttp://andrei.gmxhome.de/eclipse/
MetricsКонтроль сложностиhttp://metrics.sourceforge.net/update

Теперь вы знаете, где можно найти полезные плагины, которые легко установить. Запустите работу Eclipse, а затем следуйте следующим рекомендациям:

  1. Выберите Help | Software Updates | Find and Install, как показано на рисунке 1:

    Рисунок 1. Нахождение и установка плагина Eclipse
    Нахождение и установка плагина Eclipse
  2. Выберите переключатель Search for new features to install, а затем нажмите Next.
  3. Выберите New Remote Site, введите имя и URL необходимого плагина (см. Рисунок 2), нажмите OK, а потом Finish, чтобы появился Eclipse Update Manager.

    Рисунок 2. Выбор конфигурации удаленного сайта
    Рисунок 2. Выбор конфигурации удаленного сайта
  4. В Eclipse Update Manager вы найдете опцию просмотра различных аспектов плагина. Я обычно выбираю самый высокий уровень, как показано на рисунке 3. Сделайте свой выбор и нажмите Finish. Теперь Eclipse установит плагин. Запустите Eclipse еще раз.

    Рисунок 3. Установка плагина Eclipse
    Установка плагина Eclipse

Следуйте руководству для установки любого плагина Eclipse; просто измените имя плагина и место общей загрузки.


Корректировка стандартов с помощью CheckStyle

Надежность и способность к расширению основы кода имеет непосредственное влияние на стоимость всего программного обеспечения. Более того, к разочарованию (или наоборот, к радости) разработчиков - способность к простому изменению кода позволяет привносить в программу новые возможности. С помощью такого средства как CheckStyle можно находить стандартные нарушения в коде, которые влияют на надежность, к примеру, крупных классов, обширных методов и неиспользуемых переменных.

Что такое PMD?

Еще одно инструментальное средство с открытым кодом, называемое PMD, обладает теми же свойствами, что и описанный нами CheckStyle. Я отдаю предпочтение CheckStyle, но у PMD тоже есть преданные и многочисленные пользователи, поэтому рекомендую вам посмотреть и его; многие часто к нему обращаются!

Преимуществом использования плагина CheckStyle для Eclipse является возможность познакомиться с различными неполадками, которые могут возникнуть при кодировании, и возможность устарнить эти неполадки до завершения работы над программой. Плагин CheckStyle можно использовать и для непрерывной проверки кода!

Установите плагин CheckStyle и создайте его форму (см. Рисунок 4) следующим образом:

  1. Выберите Project, а затем значок Properties из меню Eclipse.
  2. Выберите CheckStyle active for this project и нажмите OK.

    Рисунок 4. Выбор конфигурации плагина CheckStyle в Eclipse
    Выбор конфигурации плагина CheckStyle в Eclipse

Eclipse перестраивает ваше рабочее пространство и классифицирует все когда-либо обнаруженные неполадки в пределах Eclipse, как видно из рисунка 5:

Рисунок 5. Список нарушений CheckStyle в Eclipse
Список нарушений CheckStyle в Eclipse

Внедрение системы проверки кода в Eclipse с использованием плагина CheckStyle - лучший способ профилактики ошибок в коде, которую можно провести во время работы над кодом, т.е. заранее, во время разработки. Это поможет сэкономить ваше время, нервы и, возможно, увеличить вашу прибыль. Это эффективно работает!


Определение покрытия с помощью Coverlipse

Coverlipse - плагин Eclipse, который можно использовать для определения процентного соотношения исходных кодов, имеющих и неимеющих соответствующий контроль. С Coverlipse такая проверка возможна во время написания кода. Вы встерчались с чем-нибудь подобным ранее?

Установите плагин Coverlipse и подсоедините его к JUnit, выбрав Run в меню Eclipse, в котором представлен ряд таких конфигураций как JUnit, приложения SWT и приложения Java™, например. Нажмите правую кнопку и выберите New из списка JUnit w/Coverlipse. Теперь нужно определить местоположение JUnit-теста, как показано на рисунке 6:

Рисунок 6. Управление Coverlipse для определения покрытия кода
Управление Coverlipse для определения покрытия кода

Выбрав Run, вы запускаете Coverlipse и вносите специальные обозначения в свой исходный код (как показано на рисунке 7), таким образом определяются размеры кода, связанного с JUnit-тестами:

Рисунок 7. Отчет, отправленный Coverlipse с вставленными маркерами класса
Отчет, отправленный Coverlipse с вставленными маркерами класса

Как видите, определить покрытие кода гораздо легче с помощью плагина Coverlipse в Eclipse. Это реальная возможность с наибольшей точностью проверить код заранее. Как насчет более серьезного программирования?


Обнаружение копированного кода с помощью CPD

Плагин PMD для Eclipse обеспечивает работу функции CPD (или Copy Paste Detector), отыскивающей дублированный код. Использовать это инструментальное средство в Eclipse можно после загрузки плагина Eclipse для PMD, в котором содержится соответствующая программа.

Чтобы найти дублированный код, нажмите правой кнопкой по программе Eclipse и выберите PMD | Find Suspect Cut and Paste, как показано на рисунке 8:

Рисунок 8. Выполнение копирования и вставки с использованием плагина CPD
Выполнение копирования и вставки с использованием плагина CPD

С запуском CPD создается папка в директории Eclipse report, которая содержит файл cpd.txt с дублированным кодом. Пример файла cpd.txt показан на рисунке 9:

Рисунок 9. Текстовый файл CPD, сгенерированный из плагина Eclipse
Текстовый файл CPD, сгенерированный из плагина Eclipse

Найти вручную дублированный код - сложная задача, CPD быстро обнаруживает дублированный код в ходе кодирования.


Анализ зависимости с JDepend

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

Кроме плагина Eclipse, JDepend позволяет получать эти метрики в задачах Ant, плагинах Maven и приложениях Java. Каждая из этих функций обеспечивает разные механизмы доставки одной и той же информации; тем не менее, значительные отличия и преимущества в передаче информации у плагина Eclipse состоят в том, что он доставляет информацию в непосредственной близости к исходному коду (то, что нужно при кодировании).

Рисунок 10 демонстрирует использование плагина Eclipse для JDepend - нажмите правой кнопкой по исходной папке и выберите Run JDepend Analysis. Убедитесь, что выбираете папку с исходным кодом; иначе вы не увидите эту опцию меню.

Рисунок 10. Анализ кода с использованием JDepend Analysis
Анализ кода с использованием JDepend Analysis

Сообщение, сгенерированное работой JDepend, показано на рисунке 11. На левой панели - пакеты, а на правой панели параметры зависимости для каждого пакета.

Рисунок 11. Параметры зависимостей для пакетов, пректируемых в Eclipse
Параметры зависимостей для пакетов, пректируемых в Eclipse

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


Определение сложности в Metrics

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

Установите плагин Metrics и перезапустите Eclipse; затем пошагово выполняйте следующие действия:

  1. Нажмите правую кнопку и выберите меню Properties. В появившемся окне выберите Enable Metrics plugin и нажмите OK, как показано на рисунке 12:

    Рисунок 12. Управление Metrics для работы над проектом
    Управление Metrics для работы над проектом
  2. Выберите меню Window в Eclipse, чтобы отрыть просмотр Metrics и затем выберите Show View | Other....
  3. Выберите Metrics | Metrics View, чтобы открыть окно, как показано на рисунке 13. Вам потребуется Java-перспектива и переустановка проекта для просмотра метрик.

    Рисунок 13. Просмотр Metrics в Eclipse
    Просмотр Metrics в Eclipse
  4. Нажмите OK, чтобы отобразить окно, как на рисунке 14.

    В данном случае мы видим циклическую сложность единичного метода. Очень удобно то, что вы можете двойным нажатием на метод в списке Metrics вызвать исходный код этого метода с помощью редактора Eclipse. Теперь откорректировать код, если это необходимо, не представляется сложным!

    Рисунок 14. Просмотр Cyclomatic Complexity для метода
    Просмотр Cyclomatic Complexity для метода

Как я уже говорил ранее, плагин Eclipse Metrics предоставляет множество других необходимых метрик для усовершенствования кода при создании программного обеспечения - это прогрессивный плагин!


Выбери то, что подходит именно вам

Из этой статьи видно, что эти пять параметров (стандарты кодирования, дублирование кода, покрытие кода, анализ зависимости, управление сложностями) могут значительно облегчить работу при корректировке кода. Но каждый выбирает то, что ему подходит. Не забывайте, что существует много других инструментальных средств помимо плагинов Еclipse, таких как PMD и FindBugs, к примеру, они могут помочь улучшить качество кода в процессе работы над ним. Независимо от того, какое инструментальное средство или параметры вы предпочитаете, важно, чтобы процесс создания и проверки кода стал более эффективным. Рискну предположить, что после того, как вы воспользуетесь этими плагинами, вы удивитесь, как раньше могли обходиться без них.

Ресурсы

Научиться

Получить продукты и технологии

  • Eclipse plugin for PMD: Воспользуйтесь плагином PMD для нахождения кода и вставки в коде.
  • Eclipse plugin for JDepend: Этот плагин облегчает анализ пакета зависимостей в основе кода.
  • Eclipse plugin for Coverlipse: Coverlipse - плагин Eclipse, который содержит информацию о покрытии кода.
  • Eclipse Metrics: Этот плагин содержит данные о циклической сложности, которая помогает найти ошибки в коде.
  • Eclipse plugin for CheckStyle: Проверьте правильность работы установленных кодовых стандартов.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Технология Java
ArticleID=236905
ArticleTitle=Автоматизация для людей: Совершенствование кода с помощью плагинов Eclipse
publish-date=06282007