Блог Томаша Фяялковского

Checkstyle — мощная библиотека, которая не только позволяет стандартизировать форматирование кода в проекте, но и обнаруживать некоторые ошибки программы (например, реализован ли метод equals вместе с методом hashCode) и проблемы проектирования кода (например, максимальный размер метода или цикломатическую сложность). Я считаю инструменты статического анализа кода исключительно полезными. Их стоит использовать, даже если порой они немного усложняют жизнь. В конце концов с их помощью код приложения становится лучше. Я также заметил, что многие охотнее воспринимают замечания по форматированию кода, исходящие от машины, чем от другого человека, и вся потенциальная досада адресуется компьютеру.

Оказалось, что довольно просто добавлять собственные правила в Checkstyle — то есть писать свою проверку и использовать её в собственном проекте. Добавление проверки в основную библиотеку — совсем другое дело: от идеи и демонстрации Proof of Concept до объединения в основную ветку может пройти много времени. В проекте, над которым я работаю, довольно часто (несколько раз в месяц) нарушалось правило форматирования параметров методов — находились ли параметры в одну строку или каждый располагался на отдельной строке. Код выглядел соответствующим образом, и после нескольких замечаний в ревью я решил настроить соответствующее правило в Checkstyle. К сожалению, такой проверки в стандартном наборе не оказалось.

После поисков в интернете и изучения обсуждений на GitHub я создал собственную библиотеку. На данный момент она содержит четыре проверки, относящиеся к параметрам методов и конструкторов как при их объявлении, так и при вызове. Использовать библиотеку просто: достаточно подключить её как зависимость к плагину сборки. Затем добавить проверки в конфигурацию Checkstyle. Ошибки форматирования, о которых шла речь выше, теперь обнаруживаются на этапе сборки проекта, и мне больше не приходится упоминать их в ревью кода. Я надеюсь, что проверки из моей библиотеки окажутся полезны и вам.

Programming Chi (или Qi) — это блог о скромных идеях, багах и неудачах, с которыми я сталкиваюсь ежедневно. К счастью, вместе с неудачами встречаются и многочисленные успехи и элегантные решения, о которых я тоже надеюсь писать.