Community

Введение

После разработки проектов и задач на 1С, собственно как и в других языках программирования, приходится сталкиваться с техническим долгом.

Что такое технический долг? Технический долг — это метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и вызывающие дополнительные затраты труда в будущем (Wikipedia).

Причины возникновения могут быть разными:

  • Недостаточная компетентность кадров;

  • Давление со стороны бизнеса;

  • Плохо спроектированная архитектура и отсутствие документации;

  • Отсутствие процессов review и refactoring;

  • Отсутствует тестирование;

Основная причина, почему нужно управлять качеством кода — это увеличение стоимости сопровождения и разработки продукта в дальнейшем из-за технического долга.

Управление техническим долгом

Управлять техническим долгом можно следующим подходами:

  • Внешний аудит — привлечение сторонней компании. Затратно, на результат может влиять человеческий фактор.

  • Внутренний аудит — визуальная проверка кода (code review).  Опять же на результат влияет человеческий фактор и иногда необъективность.

  • Автоматизированная проверка кода — применяются статические анализаторы. В мире 1С используется конфигурация 1С: АПК.

Существует еще один подход, который я считаю наиболее эффективным — непрерывная проверка кода (continuous code inspection). Более подробно можно изучить подход в статье Управление техническим долгом — Концепция Continuous Inspection. Мой выбор пал на SonarQube.

SonarQube — программное решение для непрерывного анализа и измерения качества кода. На текущий момент платформой поддерживается более 27 языков программирования. К сожалению, язык 1С не включен в официальный перечень поддерживаемых языков SonarQube. 

На рынке существует как минимум два плагина для поддержки языка 1С в SonarQube.

  • SonarQube 1C (BSL) Community Plugin — open source решение (https://github.com/1c-syntax/sonar-bsl-plugin-community).

  • SONARQUBE 1C (BSL) Plugin  — решение от SilverBulleters. (https://silverbulleters.org/sonarqube).

В статье используется плагин SonarQube 1C (BSL) Community Plugin, т.к. он бесплатен. Плагин основан на проекте BSL Language Server — реализации протокола language server protocol для языка 1С: Предприятие 8 и OneScript. 

Быстрый старт

В рамках базового примера мы развернем SonarQube, подготовим рабочий каталог проекта 1С, загрузим результаты проверки кода на сервис. В примере будет использоваться операционная система Windows. Повторить то же самое для unix / macos систем возможно, но с небольшими изменениями. Все скрипты будем выполнять в консоли CMD или Powershell (не имеет значения).

 Кто используют Git

Клонируем на компьютер с помощью консоли:

Визуально проект выглядит:

В его состав входят:

  • project1c — рабочий каталог с проектом для анализа.

    • src — каталог для исходных кодов 1С

    • check.bat — скрипт запуска проверки кода

    • sonar-project.properties — файл настроек проекта для SonarQube

Почему SonarQube?

  • Поддержка языков Java, C, C++, C#, Objective-C, Swift, PHP, JavaScript, Python и др.
  • Предоставляет отчеты о дублировании кода, соблюдении стандартов кодирования, покрытия кода модульными тестами, возможные ошибки в коде, плотность комментариев в коде, технический долг и другое.
  • Сохраняет историю метрик и строит графики изменения этих метрик во времени.
  • Обеспечивает полностью автоматизированный анализ: интегрируется с Maven, Ant, Gradle и распространенными системами непрерывной интеграции.
  • Позволяет интегрироваться с такими IDE, как Visual Studio, IntelliJ IDEA и Eclipse с помощью плагина SonarLint.
  • Обеспечивает интеграцию с внешними инструментами: JIRA, Mantis, LDAP, Fortify и т.д.
  • Можно расширять существующую функциональность с помощью сторонних плагинов.
  • Реализует методологию SQALE для оценки технического долга.

https://sonarqube.com/https://sonarqube.com/

Рекомендации и ограничения

  • Сервер SonarQube по умолчанию удаляет сообщения, закрытые более 30 дней назад. Мы рекомендуем отключить эту функцию, чтобы по истечению длительного периода времени (года, например) иметь возможность проанализировать, сколько сообщений, найденных PVS-Studio, было исправлено;
  • Если в файле sonar-project.properties определены модули, и у вас есть отдельный отчёт анализатора для каждого модуля, то необходимо объединить отчёты в один с помощью утилиты PlogConverter и указать отчёт один раз в sonar.pvs-studio.reportPath.
  • Все исходные файлы для анализа должны располагаться на одном диске. Это ограничение налагается платформой SonarQube. Исходные файлы, расположенные на дисках, отличных от диска, указанного в свойстве sonar.projectBaseDir, не будут проиндексированы, и сообщения, найденные в этих файлах, будут проигнорированы.

Analysis Result

Now that we’ve analyzed our first project, we can go to the web interface at http://localhost:9000 and refresh the page.

There we’ll see the report summary:

Discovered issues can either be a Bug, Vulnerability, Code Smell, Coverage or Duplication. Each category has a corresponding number of issues or a percentage value.

Moreover, issues can have one of five different severity levels: blocker, critical, major, minor and info. Just in front of the project name is an icon that displays the Quality Gate status – passed (green) or failed (red).

Clicking on the project name will take us to a dedicated dashboard where we can explore issues particular to the project in greater detail.

We can see the project code, activity and perform administration tasks from the project dashboard – each available on a separate tab.

Though there is a global Issues tab, the Issues tab on the project dashboard display issues specific to the project concerned alone:

The issues tab always display the category, severity level, tag(s), and the calculated effort (regarding time) it will take to rectify an issue.

From the issues tab, it’s possible to assign an issue to another user, comment on it, and change its severity level. Clicking on the issue itself will show more detail about the issue.

The issue tab comes with sophisticated filters to the left. These are good for pinpointing issues. So how can one know if the codebase is healthy enough for deployment into production? That’s what Quality Gate is for.

Configure SonarQube

To start using SonarQube, you will need to do some basic configurations including setting up database settings and running in server mode.

Open sonar.properties file to configure username and password for database and tell about driver to be used by SonarQube for database connection. Execute the following command to open file.

After executing the above command, a document will be opened. You will see the following area. Remove # from start of both lines and write your MySQL username and password, you set while creating database.

Find the following section, sonar.jdbc.url, and remove # to uncomment the line. This makes SonarQube use PostgreSQL where sonar should be changed with sqube, which is name of database:

Now find sonar.web.host, uncomment this line by removing # and change IP to 127.0.0.1

Now find sonar.web.javaAdditionalOpts, uncomment the line by removing # and change the value to -server.

After making changes, press Ctrl + X, type Y and hit Enter key to save the settings.

Configure Reverse Proxy for SonarQube

SonarQube listens to port 9000 by default on localhost. To access it via standard HTTP 80 port, you will need to setup reverse proxy.

Follow the steps below for configurations.

Step 1: Enable proxy mode by executing commands.

Step 2: Proceed to set up a virtual host. Execute the following command to proceed towards creation of virtual host.

Step 3: Add the following text in opened file, then press Ctrl + X, type Y and hit Enter key to save the file.

Step 4: Now you will have to enable your newly created virtual host and then start and enable your apache server. To do so, execute the command.

Step 5: Add a non-root user named sonar.

Assign permissions to sonar user for directory /opt/sonar

Now open the bash file to assign RUN_AS_USER.

Locate RUN_AS_USER in opened file, remove # sign to uncomment the line and add value as sonar, then press Ctrl + X, type Y and hit Enter key to save the file.

To start SonarQube, execute the command below.

To start SonarQube, execute the command below.

Here you go! You have successfully installed and configured SonarQube. You can access it easily by using your domain name. In my case, I have used www.softpedia.xyz.

Создание и настройка Quality Profile

Quality Profile — это коллекция диагностик, которые выполняются во время анализа. Вы можете включать диагностики PVS-Studio в существующие профили, либо создать новый. Профиль привязывается к конкретному языку программирования, но вы можете создавать несколько профилей с разными наборами правил. Все действия доступны пользователям из группы sonar-administrators.

Создать новый профиль можно в меню Quality Profiles -> Create:

Для включения диагностик анализатора в активный профиль, выберите интересующий вас репозиторий в меню Rules -> Repository:

Далее добавьте все диагностические правила в свой профиль, нажав на кнопку Bulk Change, или выберите конкретные правила вручную.

Окно активации диагностик выглядит следующим образом:

Вы также можете фильтровать правила по тегам, прежде чем выбрать их для профиля:

После создания/настройки соответствующего профиля, назначьте один из них профилем по умолчанию:

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

При выходе новой версии PVS-Studio могут добавиться новые диагностики, поэтому нужно обновить версию плагина на сервере SonarQube и добавить новые диагностики в Quality Profile, который использует диагностики PVS-Studio. Настройка автоматического обновления описана ниже, в отдельном разделе.

Первый этап

Развернем сервис SonarQube версии 7.9. Будем рассматривать простую установку, с использованием внутренней базы данных. По умолчанию SonarQube использует базу данных H2. В дальнейшем, если вы хотите использовать сервис постоянно, обновлять его  — нужно использовать внешнюю базу данных, например PostgreSQL.

Для SonarQube требуется Java 11+. Скачиваем OpenJDK 11 https://jdk.java.net/archive/ и распаковываем в каталог C:openjdk11.

Теперь нужно выставить базовые настройки. Для этого отредактируем файл конфигурации C:sonarqubeconfsonar.properties:

Указываем путь к java 11 (если ранее не было установлено и прописано в path). В файле C:sonarqubeconfwrapper.conf отредактируем строку:

Меняем на:

Сервис можно запустить вручную из консоли или создать службу windows. Для ручного запуска в консоли запускаем скрипт:

Дожидаемся завершение развертки сервиса. В консоли должно быть выведено:

Более подробно развертку SonarQube на Windows можно изучить здесь.

Скачиваем и копируем плагин для SonarQube в каталог C:sonarqubeextensionsdownloads:

https://github.com/1c-syntax/sonar-bsl-plugin-community/releases/tag/v0.6.0

SonarQube будет доступен по адресу http://localhost:9000. По умолчанию в SonarQube создается пользователь admin / admin  — логин / пароль соответственно.

Теперь на сервисе SonarQube нужно:

  • Если используется внешняя база данных для SonarQube, то нужно сгенерировать token доступа пользователя для запуска анализа проекта.

  • Добавить пользователей с электронной почтой, соответствующей пользователям Git вашего проекта, на проверку. Если исходные коды выгружались вручную через конфигуратор, этот шаг нужно пропустить.

Генерация token (необязательно)

Переходим на настройки пользователя admin http://localhost:9000/account/security/, указываем название token и нажимаем Generate. Копируем полученный token, он вам понадобится в дальнейшем.

Добавление новых пользователей

Создаем новых пользователей. Для этого переходим на страницу http://localhost:9000/admin/users и нажимаем Create user. Обязательно заполняем все поля:

Если используется проект Git то создаем пользователей для каждого пользователя Git.

Интерфейс на Русском языке

Сменим язык интерфейса сервиса на Русский. Для этого переходим на страницу http://localhost:9000/admin/marketplace, находим плагин локализации Russian Pack и устанавливаем, используя кнопку Install.

Внимание: для смены языка интерфейса на русский нужно будет перезапустить сервис SonarQube. Для этого нажимаем на той же странице Restart Server:

Step 5 — Securing SonarQube

SonarQube ships with a default administrator username and password of admin. This default password is not secure, so we’ll want to update it to something more secure as a good security practice.

Start by visiting the URL of your installation, and log in using the default credentials.

Once logged in, click the Administration tab, select Security from the dropdown list, and then select Users:

From here, click on the small cog on the right of the “administrator” account row, then click on “Change password”. Be sure to change the password to something that’s easy to remember but hard to guess.

Now create a normal user that you can use to create projects and submit analysis results to your server from the same page. Click on the Create User button on the top-right of the page:

Then create a token for a specific user by clicking on the button in the “Tokens” column and giving this token a name. You’ll need this token later when you invoke the code scanner, so be sure to write it down in a safe place.

Finally, you may notice that the SonarQube instance is wide-open to the world, and anyone could view analysis results and your source code.
This setting is highly insecure, so we’ll configure SonarQube to only allow logged-in users access to the dashboard. From the same administration tab, click on Configuration, then Security on the left pane. Flip the switch on this page to require user authentication.

Now that we’re done setting up our server, let’s set up the scanner.

Install PostgreSQL

SonarQube supports PostgreSQL, MySQL, MSSQL and Oracle. In this tutorial, I will use PostgreSQL as MySQL is not recommended for large instances. For using MySQL, you can only use bundled mysql-connector-java. InnoDB engine is a must in MySQL. To avoid such restrictions, I strongly recommend using PostgreSQL. Follow the steps below to install PostgreSQL.

Step 1: Install PostgreSQL repo.

Step 2: Now install the PostgreSQL server by executing the command below.

Step 3: Execute the following command to start and enable PostgreSQL server so that it can start automatically after reboot.

Create Directory and Set Permissions

To install SonarQube for continues quality inspection of code, follow the steps below.

Step 1: Create a directory named sonar. You can give your desired name to directory but you will require to follow your own directory path for next steps in installation of SonarQube.

Step 2: Now you will have to give permissions to your username for created directory so that you may make changes. For this purpose, execute the following command. Remember to replace aareez with your own username.

Плагины PVS-Studio и их установка

Пользователям PVS-Studio доступны следующие плагины для SonarQube:

  • sonar-pvs-studio-plugin.jar — плагин для импорта результатов PVS-Studio в проект на сервере SonarQube;
  • sonar-pvs-studio-lang-plugin.jar — плагин, позволяющий создавать профиль (quality profile) с языком C/C++/C#. Данный плагин предоставляется для совместимости перехода со старых версий SonarQube плагинов PVS-Studio с сохранением ранее полученных метрик\статистики, в будущих релизах его поддержка может быть прекращена. Если вы создаёте новый проект, используйте профиль с одним из стандартных языков (C++, C#, Java);

После установки сервера SonarQube скопируйте плагин (sonar-pvs-studio-plugin.jar) в следующую директорию:

В зависимости от языка, для которого вы загружаете результаты анализа, установите также соответствующие плагины из списка (часть из них может быть установлена по умолчанию, в зависимости от используемой вами редакции SonarQube):

  • SonarC# plugin (Marketplace)
  • SonarJava plugin (Marketplace)
  • SonarCFamily (SQ Developer Edition)

После этого перезапустите сервер SonarQube.

Install SonarQube

Now that you have already set up your server and installed a PostgreSQL database, it’s time for us to install SonarQube. To download and install SonarQube, follow the steps below.

Step 1: Navigate to directory /opt/sonar that you created for SonarQube.

Step 2: Now you will have to download a copy of SonarQube from its official website. To do so, execute the following command.

Step 3: Now you can see compressed zip folder in your CLI by executing the command.

Extract the files from compressed folder by unzipping it. To do so, execute the following command.

Create and Configure Database

To create and configure database, follow the steps below.

Step 1: Change the password for postgres user and switch to postgres user. To change password execute the command.

Now execute the command below to switch to postgres user.

Step 2: Now create new user by executing the following command.

Step 3: Now open Postgres shell for executing queries. To open, execute the command.

Step 4: Execute the following queries. First query will create password for user, second query will create database and assign database privileges to user and the third query will exit from MySQL server.

Step 5: Execute the following command to switch back to sudo user.

Как SonarQube помогает оценить качество кода

Модель качества должна быть максимально простой в использовании
Баги и уязвимости не должны теряться среди проблем поддерживаемости (maintainability)
Наличие серьезных багов и уязвимостей в проекте должно приводить к тому, что требования Quality Gate не выполнены
Проблемы поддерживаемости кода тоже важны, и их нельзя игнорировать
Вычисление стоимости устранения проблем (использование модели анализа SQALE) важно и должно выполняться

  • 0 новых багов
  • 0 новых уязвимостей
  • коэффициент технического долга на новом коде <= 5%
  • покрытие нового кода не ниже 80%
  • Баги и потенциальные баги
  • Нарушение стандартов кодирования
  • Дублирование кода
  • Недостаточное покрытие модульными тестами
  • Плохое распределение сложности
  • Спагетти-дизайн
  • Недостаточно или слишком много комментариев

Как установить SonarQube на Ubuntu 18.04

26.01.2020 23:16 |
Другое

Качество кода — основа основ. Отсутствие конроля качества приводит к загниванию кода, увеличению стоимости как самой разработки, так и поддержки. Один из инструментов, который может существенно упростить задачу контроля — SonarQube. Сегодня рассмотрим установку сонара на Ubuntu 18.04.

Подготовка

Для использования SonarQube нам понадобятся Java и PostgreSQL. Если они не установлены на Вашем компьютере — ставим. Java:

PostgreSQL:

Создадим в postgres пользователя с именем sonarqube, а также одноименную базу данных:

Чтобы вернуться к «своему» пользователю, воспользуйтесь комбинацией клавиш .

SonarQube является Java-приложением, которое будет работать как сервис. Мы не хотим запускать сервисы от имени root, а потому создадим другого системного юзера специально для запуска сонара:

и создадим директории для сонара и сканера:

Установка SonarQube

Скачиваем SonarQube Community Edition. По умолчанию архив с инсталяцией будет сохранён в директорию , перенесём его с созданную ранее папку:

*в вашем случае версия сонара может отличаться.

Перейдём в соответствующую директорию, распакуем и удалим архив:

Изменим права на папку:

Изменим конфиги сонара, для чего откроем файл: 

и поменяем следующие настройки:

Сохраняем и закрываем.

Конфигурируем SonarQube для запуска как сервиса, т.е. он будет автоматически запускаться при ребуте системы. Создаём файл сервиса:

и вставляем в этот файл следующий контент:

сохраняем и закрываем.

Запускаем и проверяем статус:

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

Решение проблем с запуском

Если на предыдущем шаге получаете ошибку:

посмотрите логи сонара:

Вполне вероятно, что увидите следующее:

Эта проблема описана в доках (посмотрите раздел ). Убедитесь, чо в секции Service файла  есть следующие параметры:

Также откройте файл и добавьте следующую строку:

Сохранитесь, закройте файл и затем запустите:

Затем добавим хост, открыв файл:

и добавляем:

Cоздаём файл конфига для сайта:

и вставляем следующее содержимое:

Убедимся, что нет ошибки и перезапускаем nginx:

Теперь SonarQube должен быть доступен по адресу !

SonarQube Scanner

Качаем sonarscanner (для cli) отсюда.

Переносим архив в нужную директорию:

Переходим в директорию сканера, разархивируем и удалим архив:

Изменим настройки хоста. Открываем

и устанавливаем значение url:

Если sonar-scanner неисполняемый, то надо изменить права:

Добавим символическую ссылку, чтобы вызывать сканер без полного пути:

Сканер готов к работе!

Как использовать в проектах

В корне проекта создайте файл и добавьте в него следующее содержимое (пример для laravel):

*вместо  и используйте любые свои значения

Откройте и добавьте свой проект. После добавления названия и ключа, сонар сгенерирует команду подобную этой:

Скопируйте её и запустите из корня проекта в теримнале. Вуаля! На странице проекта в sonarqube увидите результаты анализа:

Далее дело за Вами — покрыть код тестами, посмотреть что за технический долг, что за запахи — сделать рефакторинг и т.д.

Не вижу смысла пересказывать доки сонара, просто порекомендую внимательно ознакомиться с ними, чтобы использовать этот инструмент максимально эффективно.

На этом на сегодня всё. Успехов! 

Step 7 — Running a Test Scan

If you’d like to just poke around with SonarQube to see what it can do, you might consider running a test scan on the SonarQube example projects. These are example projects created by the SonarQube team that contains many issues that SonarQube will then detect and report.

Creating a new working directory in your home directory, then change to the directory:

Download the example project:

Unzip the project and delete the archive file:

Next, switch to the example project directory:

Run the scanner, passing it the token you created earlier:

Once the scan is complete, you’ll see something like this on the console:

The example project’s report will now be on the SonarQube dashboard like so:

Now that you’ve confirmed that both the SonarQube server and scanner works as expected, you can put SonarQube to work analyzing your own code.

Transfer your project to the server, or follow the steps in Step 6 to install and configure the SonarQube scanner on your workstation and configure it to point to your SonarQube server.

Then, in your project’s root directory, create a SonarQube configuration file:

You’ll use this file to tell SonarQube a few things about your project:

First, define a project key, which is a unique ID for the project. You can use anything you’d like, but this ID must be unique for your SonarQube instance:

sonar-project.properties

Then, specify the project name and version so that SonarQube will be able to display this information in the dashboard:

sonar-project.properties

Finally, tell SonarQube where to look for the code files itself. Note that this is relative to the directory that the configuration file resides. Set it to the current directory:

sonar-project.properties

Close and save the file.

You’re ready to run a code quality analysis on your own code. Run again, passing it your token:

Once the scan is complete, you’ll see a summary screen similar to this:

And the project’s code quality report will now be on the SonarQube dashboard.

Features

Analysis

The plugin scans for dependencies defined in your project including all transitive dependencies.

Currently supported formats are:

  • Maven POM files — all dependencies with scope «compile» and «runtime» are checked
  • NPM package.json files — all dependencies (except «devDependencies») are checked

Project Dashboard

The plugin contains a project dashboard showing a list of dependencies with version and a list of all used licences. Each table shows the status of the license
(allowed, not allowed, not found). You can also export the data to Excel.

Example for «Dependencies» table:

Name Version License Status
org.springframework.boot:spring-boot 1.4.0.RELEASE Apache-2.0 Allowed
core-js 2.4.0 MIT Allowed
dk.brics.automaton:automaton 1.11-8 BSD-3-Clause Not Allowed
saxon:saxon 9.1.0.8j Unknown

Example for «Licenses» table:

Identifier Name Allowed
Apache-2.0 Apache License 2.0 true
MIT MIT License true
BSD-3-Clause BSD 3-clause New or Revised License false

PVS-Studio и SonarQube

Для импорта результатов анализа в SonarQube мы разработали плагин sonar-pvs-studio-plugin. Использование плагина позволяет добавлять сообщения, найденные анализатором PVS-Studio, в базу сообщений сервера SonarQube. Плагин содержит репозиторий с описанием диагностик, которые выполняет наш статический анализатор. После того, как вы добавите наш плагин в SonarQube, вы увидите репозиторий с названием PVS-Studio для языков C, C++ и C#:

Диагностические сообщения PVS-Studio в репозитории плагина сопровождаются подробными описаниями ошибок с примерами кода и рекомендациями по устранению проблемы:

После анализа кода проекта и импорта результатов в SonarQube, с помощью фильтров вы можете, например, выбрать все неисправленные проблемы, найденные PVS-Studio:

Чтобы добавить результаты анализа PVS-Studio в SonarQube, достаточно установить плагин sonar-pvs-studio-plugin, добавить диагностики PVS-Studio из репозитория плагина в Quality Profile и передать путь до файла отчета PVS-Studio в свойстве sonar.pvs-studio.reportPath при запуске сканера SonarQube.

Однако мы столкнулись с важными с нашей точки зрения ограничениями сканера SonarQube Scanner for MSBuild.

Во-первых, при анализе C/C++ проектов этот сканер добавит в список файлов для анализа только те файлы, которые добавлены в свойства ClCompile и ClInclude проектного файла .vcxproj. Если, например, заголовочный файл не включен явно в проект и подключен в коде одного из исходных файлов, этот файл будет проигнорирован, и результаты анализа этого файла будут отсутствовать в SonarQube.

Во-вторых, SonarQube Scanner for MSBuild не добавляет для анализа исходные файлы, расположенные выше по дереву каталогов, чем каталог, в котором находится проектный файл. Сообщения для таких файлов будут также отсутствовать в SonarQube.

По умолчанию, сканер SonarQube индексирует исходные файлы для анализа, расположенные по дереву каталогов ниже, чем файл решения (.sln) либо проекта (.vcxproj/.csproj). Для анализа проектов со сложной структурой, где исходные файлы могут находиться выше по дереву каталогов, чем файл решения или проекта, в свойстве sonar.projectBaseDir нужно указать наивысший общий каталог для всех исходных файлов (в крайнем случае, это может быть корень диска), и в свойстве sonar.sources затем перечислить директории, в которых следует искать исходные файлы для анализа (либо полные пути до исходных файлов).

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

При разработке нашего статического анализатора мы фокусируемся на поиске ошибок в коде, и не поддерживаем поиск потенциальных уязвимостей и code smells, поэтому при использовании нашего плагина для SonarQube метрики Security и Maintainability не будут заполнены. Также следует отметить, что в текущей версии нашего плагина не реализовано вычисление Duplications, Complexity и Documentation.

Заключение

Не оставляйте «разбитые окна» (неудачные конструкции, неверные решения или некачественный текст программы) без внимания. Как только их обнаружите, чините сразу. Если нет времени на надлежащий ремонт, забейте окно досками. Наверняка вы сможете закомментировать ошибочный фрагмент или вывести на экран сообщение «В стадии разработки», или использовать фиктивные данные. Необходимо предпринять хотя бы малейшее действие, чтобы предотвратить дальнейшее разрушение, и показать, что вы контролируете ситуацию.Мы видели, как безошибочные, функциональные системы быстро портились, как только окна начали разбиваться. Существуют и другие факторы, которые вносят свой вклад в порчу программ, и мы коснемся некоторых из них далее, но небрежность ускоряет порчу быстрее, чем любой другой фактор.Вы можете подумать, что ни у кого не будет времени обойти «разбитые окна» проекта и отремонтировать их. Если вы продолжаете думать подобным образом, тогда вам лучше спланировать приобретение мусорного контейнера или переехать в другой район города. Не давайте энтропии победить себя.попробуйте ееPVS-Studio

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *