После продолжительного затишья попробую возобновить свою блоггерскую деятельность.
Так сложилось, что последнее время я оказываюсь в роли борца за качество кода. С одной стороны — заказчик, у которого сроки поджимают, а с другой — программист, следующий правилу: “Работает — не трогай!”. Кодовая база растет, в программе появляется новый функционал и вместе с тем накапливается технический долг, сказывающийся на стоимости сопровождения приложения и скорости добавления новых “плюшек”. До определенного времени мало кто обращает внимание на качество кода, считая его вполне приемлемым. Да, иногда вспоминаем про рефакторинг, что-то переделываем сразу, а, бывает, прикинув необходимые на его проведение временные затраты, откладываем в бэклог до лучших времен. Поди улови тот момент, когда качество было приемлемое, и “вдруг” оказалось никудышным. Значит, необходимо отслеживать качество кода. При этом желательно автоматизировать этот процесс. А так как потребность назрела давно, были разработаны необходимые инструменты. В арсенале Java-разработчика (каковым я являюсь) имеются FindBugs, PMD, Checkstyle. Возможно вы еще что-то вспомните. Я же хочу рассказать о платформе Sonar (http://www.sonarsource.org/).
Платформа Sonar представляет собой комплексное решение для отслеживания качества кода по различным параметрам: дублирование кода, его сложность, покрытие тестами, архитектура, потенциальные ошибки, соответствие стандартам кодирования, наличие комментариев. При этом собранная информация подается в доступном, удобном для восприятия виде. Платформа конфигурируема и расширяема. С ее возможностями я и намерен постепенно знакомить читателя.
Для начала установим эту платформу — это не составит особого труда:
- Скачиваем архив http://dist.sonar.codehaus.org/sonar-2.13.1.zip и распаковываем его
- Уже можно использовать :) По умолчанию для хранения собранной информации Sonar использует Apache Derby, идущую в поставке. Я все же предпочитаю использовать MySql. Для этого необходимо создать базу sonar и пользователя sonar и дать ему все права на эту базу. Готовый sql-скрипт есть на github'е (https://github.com/SonarSource/sonar/tree/master/sonar-application/src/main/assembly/extras/database/mysql)
- После этого правим conf/sonar.properties. По сути там уже прописаны настройки и для MySql — просто расскоментируй :)
- Если вам это необходимо, Sonar можно запаковать в WAR и задеплоить на ваш JEE сервер (этот вариант рассмотрен здесь - http://docs.codehaus.org/display/SONAR/Install+Sonar#InstallSonar-Mode2-DeployonJEEServer).
Все готово к запуску.
- На Linux/Mac OS :
bin/<your OS>/sonar.sh start
- На MS Windows :
bin/windows-x86-32/StartSonar.bat
Продолжение следует…
Комментарии