Sonar quality

2,678 views
2,543 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,678
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sonar quality

  1. 1. Докладчик: Артем Фурсенко
  2. 2. Что такое метрики кода? Методы оценки качества исходного кода программы. <ul><li>Контроль качества кода во время разработки </li></ul><ul><li>Поиск сложных или проблемных мест </li></ul><ul><li>Установка приоритетов для рефакторинга </li></ul><ul><li>Следование правилам </li></ul>Зачем? <ul><li>Разработчикам </li></ul><ul><li>Менеджерам (для оценки работы команды) </li></ul>Кому?
  3. 3. <ul><li>Количество строк кода (lines of code) — оценивает общее число строк кода (или количество низкоуровневых инструкций). </li></ul><ul><li>Цикломатическая сложность (cyclomatic complexity) — оценивает структурную сложность кода. Вычисляется по количеству возможных путей в коде программы. Например, если метод имеет большое число ветвлений, то, возможно, его стоит разбить на несколько более простых для понимания блоков? </li></ul><ul><li>Связность классов (coupling) — показывает насколько сильно один класс зависит от других. Невысокая связность означает большую простоту повторного использования кода. </li></ul><ul><li>Количество дубликатов (duplications) — показывает одинаковые блоки кода, для которых может быть смысл создания отдельного метода. </li></ul>Основные метрики кода:
  4. 4. <ul><li>Покрытие unit-тестами (code coverage) — оценка размера кода, выполненного юнит-тестами. </li></ul><ul><li>Следование guidelines — проверка на следование общепринятым правилам написания кода. </li></ul><ul><li>Наличие комментариев — оценка документированности кода, “внутри” и “снаружи” методов. </li></ul>Другие показатели качества кода: ...
  5. 5. Как оценивать код?
  6. 6. Sonar Автоматизированное средство сбора метрик кода. ( http://sonarsource.org/ )
  7. 8. Как это работает? Sonar не является .NET решением изначально. Для него существует группа плагинов, которые допускают использование с .NET/C# (включая версию 4.0). Каждый плагин отвечает за адаптацию отчетов некоторого инструмента оценки кода для Sonar. Соответственно, для получение полной функциональности необходимы все эти инструменты :)
  8. 9. Source Monitor — сбор основных метрик кода.
  9. 10. Gallio — инструмент для запуска юнит-тестов. Нужен для оценки числа пройденных и неудачных тестов.
  10. 11. PartCover .NET / NCover — инструменты для оценки code coverage. PartCover .NET создавался как бесплатная, открытая альтернатива к NCover. Но PartCover умеет оценивать только lines coverage, в то время как Ncover позволяет оценить и branch coverage.
  11. 12. FxCop — инструмент статического анализа кода на соответствие guidelines. Оценивает IL код.
  12. 13. StyleCop — проверяет стиль исходного кода для языка C#. Содержит такие категории правил: документация, разметка кода, наименования, читаемость, порядок блоков.
  13. 14. Запускаем
  14. 15. Установка Sonar и плагинов После установки нужно скопировать плагины для dotnet в $SONAR_HOME/extensions/plugins . Установка внешних инструментов Те, для которых были скопированы плагины. И как же связать Sonar, инструменты и проект?
  15. 16. Maven Apache Maven — инструмент сборки проектов, который в этом случае и будет “отправлять” отчеты в Sonar. После установки и настройки самого Maven, к нему нужно подключить Maven Dotnet Plugin ( maven-dotnet-plugin.appspot.com ) и настроить файл settings.xml, добавив в него пути к инструментам оценки кода, а также к платформам .NET разных версий. Установка Maven и его настройка ( maven.apache.org )
  16. 17. Сборочный файл Maven Файлом проекта является pom.xml. Для целей Sonar он будет иметь такой вид:
  17. 18. Запускаем! Файл pom.xml должен находиться в корневой папке проекта (там, где *.sln). После запуска самого Sonar, в папке проекта нужно вызвать такую команду: mvn sonar:sonar ... После сборки проект появится в списке Sonar!
  18. 19. Итоги
  19. 20. <ul><li>Open source, бесплатность </li></ul><ul><li>Управление и доступ через веб-интерфейс </li></ul><ul><li>Простая интеграция с билд-серверами </li></ul><ul><li>Гибкость в выборе правил и инструментов </li></ul>Достоинства:
  20. 21. <ul><li>Относительная сложность установки </li></ul><ul><li>Необходимость в дополнительном сборочном инструменте специально для Sonar </li></ul><ul><li>Зависимость от большого числа внешних инструментов </li></ul>Недостатки:
  21. 22. http://www.sonarsource.org/ - домашняя страница Sonar. http://docs.codehaus.org/display/SONAR/.Net+plugin - плагины для работы с .NET http://maven.apache.org/ - Apache Maven http://maven-dotnet-plugin.appspot.com/ - .NET плагин для Maven http://www.campwoodsw.com/sourcemonitor.html - Source Monitor https://github.com/sawilde/partcover.net4 - Part Cover .NET 4 http://www.gallio.org/ - Gallio http://www.microsoft.com/downloads/en/details.aspx?FamilyID=917023f6-d5b7-41bb-bbc0-411a7d66cf3c - FxCop http://stylecop.codeplex.com/ - StyleCop Ссылки
  22. 23. Артем Фурсенко [email_address] skype: artem.fursenko Вопросы?

×