# java-checkstyle-config
Our check style config based on Google style
Usage example:
```xml
org.apache.maven.plugins
maven-checkstyle-plugin
3.1.2
com.puppycrawl.tools
checkstyle
8.41
validate
validate
${checkstyle.config.path}
UTF-8
true
true
warning
true
${checkstyle.config.suppressions.path}
check
```
### SuppressWarnings examples
First path — override `${checkstyle.config.suppressions.path}` in project with `checkstyle-suppressions.xml` file and fill with your filters
pom.xml:
```xml
./src/main/resources/checkstyle/checkstyle-suppressions.xml
```
checkstyle-suppressions.xml:
```xml
```
Other path — use `@SuppressWarnings`:
```java
@SuppressWarnings({"checkstyle:%module_name%", "checkstyle:%module_name%""})
```
Example:
```java
@SuppressWarnings({"checkstyle:parametername", "checkstyle:localvariablename"})
```
# Написание исходного кода
Набор рекомендаций по подходу к написанию, оформлению и форматированию исходного кода на Java.
## Оформление
Поддержание единого code style осуществляется за счет использования `maven-checkstyle-plugin` с настроенным под наc [google style конфигом](https://github.com/valitydev/java-checkstyle-config).
Вам **не нужно вручную добавлять плагин** в свой проект. Чаще всего, будет достаточно использовать подходящий parent pom.
#### Для Spring проекта:
```xml
dev.vality
service-parent-pom
```
#### Для любого другого java проекта:
```xml
dev.vality
library-parent-pom
```
**Важно**. Если у вас цель модифицировать check style под свой проект - используйте property `checkstyle.config.path` с указанием пути до файла конфигурации:
```xml
custom_google_checkstyle.xml
```
### Форматирование кода в IntelliJ IDEA
#### Realtime проверка стиля
Для проверки стиля в realtime воспользуйтесь [плагином](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea)
После установки плагина необходимо подключить наш файл конфигурации стилей. Это можно сделать в разделе `Tools > CheckStyle`, в настройках `IDEA`.
![Intellij IDEA CodeStyle](images/codestyle/codestyle-intellij-idea.png)
Актуальный файл конфигурации стилей можно взять из нашего [репозитория](https://raw.githubusercontent.com/valitydev/java-checkstyle-config/master/conf/valitydev_google_checkstyle.xml)
#### Автоформатирование кода
Чтобы воспользоваться автоформатированием кода - импортируйте [файл конфигурации стилей](https://raw.githubusercontent.com/valitydev/java-checkstyle-config/master/conf/valitydev_google_checkstyle.xml) в `Code Style` вашей `IntelliJ IDEA`
![Intellij IDEA CodeStyle Format](images/codestyle/codestyle-intellij-idea-autoformat.png)
Далее вы можете использовать эту схему для конкретного проекта или глобально.
Форматирование осуществляется через вызов `Code > Reformat Code` в `IDEA`.
**Важно**. Если у вас на CI check style падает с ошибкой, а у себя в локальной среде вы не видите ошибок форматирования кода - убедитесь, что используете актуальный [файл конфигурации стилей](https://raw.githubusercontent.com/valitydev/java-checkstyle-config/master/conf/valitydev_google_checkstyle.xml) в `IntelliJ IDEA`
## Краткое описание классов
В шапке каждого класса хорошим тоном будет указывать небольшое описание того, зачем этот класс нужен и что он делает.