stalxed
Новичок
Пользовался поиском, не нашёл.
Почему нет тем по статическим анализаторам кода?
Начну с себя...
Использую SonarCube.
Поддержка php из коробки.
Использую по следующей схеме:
1) Заливаю код в хранилище GIT. В качестве хранилища используется Atlassian Stash.
2) Atlassian Bamboo по тригеру видит комит и запускает, среди прочего, Sonar Runner.
3) Запуск Sonar Runner происходит через обычную команду ant sonar.xml
4) Для Ant установлен плагин Sonar.
Если кому интересно, могу про установку подробнее описать. Правда под Windows Server.
Ничего сложного.
Теперь о самом анализаторе.
Есть поддержка не только php, но и смежных нам, веб разработчикам, технологий: xml, html, css.
К сожалению, я работаю только c php. Остальной код вне моей рабочей ответственности.
Что же нам даёт php плагин?
2 профиля правил:
Получилось 61 правило.
Примеры правил:
1) Class names should comply with a naming convention ^[A-Z][a-zA-Z]*$
2) Comments should not be located at the end of lines of code.
3) Function names should comply with a naming convention ^[a-z][a-zA-Z0-9]*$
и т.д.
Регулярные выражения можно редактировать!
Конечно, правила выше могут вызвать только смех, типа и всего!
Но есть правила и поинтереснее, например, проверка форматирования по стандартам PSR2:
Конечно, каждый параметр можно изменить под себя!
Я стараюсь придерживаться стандартов PSR, но разрабатываю под Windows, поэтому иногда случается, что создаю файлы с windows переводом строк. Также иногда закрываю php код тегом ?>
И подобной мелочевки достаточно много, которую SonarCube позволяет заметить и устранить.
Пока нет времени, но хочется добавить туда собственные проверки, хотя бы регулярными выражениями.
Интерфейс очень классный и удобный.
Продукт бесплатный!
О стабильности: Sonar не вызвал fail не для одного из 500 билдов приложения. Fail вызывают другие компоненты(привет composer и zend server depoyment).
О скорости: 500 файлов общим размером около 1 мб проверились в последнем билде за:
Я считаю, что это быстро.
Одним словом мне ничего не мешает вам его рекомендовать: бесплатный, работает на вашем сервере, не сильно замедляет билд, классный и удобный интерфейс.
Недостатки:
НО!
Их главное отличие от Sonar Cube - они облачные. Т.е. ваш код становится не только вашим...
Конечно они красиво описали о мерах безопасности... Но это лишь слова.
Периодически говорю с Sensio - у них в разработке серверная версия.
НО! Она будет полусерверная, т.е. анализ будет на вашем сервере, а к ним в облако будет уходить только результат.
Меня это устраивает, с нетерпением жду.
С Scrutinizer хочу поговорить, есть ли у них серверная версия.
Во общем пост создал для того, чтобы услышать ваш опыт по использованию подобных инструментов и поделиться своим. Если что интересно ещё в моём опыте - спрашивайте, с радостью отвечу. А если у вас ест опыт, то поделитесь им: какие инструменты используйте, как интегрировали, что нравится, что не нравится и т.д.
Также кто имеет опыт создания правил под SonarCube - помогите пожалуйста с правилом - построчной валидации по регулярному выражению.
Надеюсь тема получит здесь развитие.
Почему нет тем по статическим анализаторам кода?
Начну с себя...
Использую SonarCube.
Поддержка php из коробки.
Использую по следующей схеме:
1) Заливаю код в хранилище GIT. В качестве хранилища используется Atlassian Stash.
2) Atlassian Bamboo по тригеру видит комит и запускает, среди прочего, Sonar Runner.
3) Запуск Sonar Runner происходит через обычную команду ant sonar.xml
4) Для Ant установлен плагин Sonar.
Если кому интересно, могу про установку подробнее описать. Правда под Windows Server.
Ничего сложного.
Теперь о самом анализаторе.
Есть поддержка не только php, но и смежных нам, веб разработчикам, технологий: xml, html, css.
К сожалению, я работаю только c php. Остальной код вне моей рабочей ответственности.
Что же нам даёт php плагин?
2 профиля правил:
- PSR-2
- Sonar way.
Получилось 61 правило.
Примеры правил:
1) Class names should comply with a naming convention ^[A-Z][a-zA-Z]*$
2) Comments should not be located at the end of lines of code.
3) Function names should comply with a naming convention ^[a-z][a-zA-Z0-9]*$
и т.д.
Регулярные выражения можно редактировать!
Конечно, правила выше могут вызвать только смех, типа и всего!
Но есть правила и поинтереснее, например, проверка форматирования по стандартам PSR2:
PHP:
closing_curly_brace: true
closure_format: true
extends_implements_line: true
foreach_space: true
function_calls_arguments_indentation: true
function_declaration_arguments_indentation: true
interfaces_indentation: true
namespace_blank_line: true
no_space: true
no_space_method_name: true
one_space_after: true
one_space_before: true
one_space_for: true
open_curly_brace_classes_functions: true
open_curly_brace_control_structures: true
space_comma: true
use_after_namespace: true
use_blank_line: true
Я стараюсь придерживаться стандартов PSR, но разрабатываю под Windows, поэтому иногда случается, что создаю файлы с windows переводом строк. Также иногда закрываю php код тегом ?>
И подобной мелочевки достаточно много, которую SonarCube позволяет заметить и устранить.
Пока нет времени, но хочется добавить туда собственные проверки, хотя бы регулярными выражениями.
Интерфейс очень классный и удобный.
Продукт бесплатный!
О стабильности: Sonar не вызвал fail не для одного из 500 билдов приложения. Fail вызывают другие компоненты(привет composer и zend server depoyment).
О скорости: 500 файлов общим размером около 1 мб проверились в последнем билде за:
Код:
30-Nov-2014 17:55:27 BUILD SUCCESSFUL
30-Nov-2014 17:55:27 Total time: 42 seconds
30-Nov-2014 17:55:27 Finished task 'Sonar' with result: Success
Одним словом мне ничего не мешает вам его рекомендовать: бесплатный, работает на вашем сервере, не сильно замедляет билд, классный и удобный интерфейс.
Недостатки:
- Для php правил гораздо меньше, чем для Java, речь идёт о разнице в 10-20 раз! Плагин под php развивается, не заброшен, очень надеюсь, что количество правил в дальнейшем будет увеличиваться.
- Если вы не используйте системы Continuous Integration то использовать Sonar Cube очень проблематично в плане ресурсов. Я выделил приложению 1ГБ ОЗУ. Хотя по умолчанию... хм 768Mb. Не мало... Держать на том же компьютере, где работают современные IDE(Zend Studio, PhpStorm) - не лучшее решение. А постоянно запускать и останавливать Sonar Cube вам попросту надоест.
- SensioLabsInsight https://insight.sensiolabs.com/
- Scrutinizer https://scrutinizer-ci.com/
НО!
Их главное отличие от Sonar Cube - они облачные. Т.е. ваш код становится не только вашим...
Конечно они красиво описали о мерах безопасности... Но это лишь слова.
Периодически говорю с Sensio - у них в разработке серверная версия.
НО! Она будет полусерверная, т.е. анализ будет на вашем сервере, а к ним в облако будет уходить только результат.
Меня это устраивает, с нетерпением жду.
С Scrutinizer хочу поговорить, есть ли у них серверная версия.
Во общем пост создал для того, чтобы услышать ваш опыт по использованию подобных инструментов и поделиться своим. Если что интересно ещё в моём опыте - спрашивайте, с радостью отвечу. А если у вас ест опыт, то поделитесь им: какие инструменты используйте, как интегрировали, что нравится, что не нравится и т.д.
Также кто имеет опыт создания правил под SonarCube - помогите пожалуйста с правилом - построчной валидации по регулярному выражению.
Надеюсь тема получит здесь развитие.
Последнее редактирование: