Как мы внедрили автоматические инструменты проверки кода и повысили свой имидж в глазах клиентов

Конкуренция, желание зарабатывать и здоровая лень заставляют тебя мыслить нестандартно в вопросах оптимизации работы и роста компании. В Taptima мы занимаемся разработкой IT-продуктов, и все началось с того, как моему партнеру стало лень делать code review.

Code review – это такой процесс, когда «мастер кода» оценивает, что написал другой программист и даёт свои комментарии и замечания. Причём эти ребята – забавный народ (сам я к программированию отношения не имею и отвечаю за бизнесовую часть). У них есть определённые правила того, как должен быть оформлен код: наличие аннотаций, расположение переменных, именование и т.д. Все это до поры передавалось на словах и с большими сложностями прививалось каждому новому сотруднику, что требовало много трудов рецензента. Пример подобных банальных комментариев доступен ниже.

Пример банального комментария №1
Пример банального комментария №1
Пример банального комментария №2
Пример банального комментария №2

И тогда мой довольно импульсивный партнёр Марк, занятно подуставший (как вы понимаете, тут следовало бы использовать другое слово, но цензура, все дела) от всего этого, отправился за поиском решения. И он его нашёл!

Оказалось, что все эти неписаные правила можно запрограммировать и для этого уже есть отличная база. Называется она php-cs-fixer (по ссылке доступен наш фиксер с корпоративными правилами) и позволяет стандартизировать правила стилизации кода в компании. Но эта находка позволила наткнуться на куда более интересный и значимый материал от компании Badoo. В ней они рассказали про использование статических анализаторов кода при отладке своего приложения и это стало большим толчком к изменениям для нас.

Статические анализаторы, по своему определению, не компилируют и запускают приложение, пытаюсь найти в нем ошибки (хотя есть и исключение из этого правила), а анализируют именно кодовую базу с целью найти большой спектр потенциальных проблем, например, когда происходит ошибка с типами переменных. Подобные предупреждения позволяют избежать больших проблем в будущем, делают код стабильнее и чище. Эта идея очень понравилась моему партнеру. В итоге после месячного тестирования различных анализаторов на одном из больших боевых проектов стало понятно, что несмотря на внутреннее сопротивление любого программиста, для бизнеса и любого нашего проекта это станет большим шагом вперёд, что позволит намного легче поддерживать качество кода. Для работы выбрали следующие анализаторы: PHPStan, Phan, Psalm, PHPmd.

Как мы внедрили автоматические инструменты проверки кода и повысили свой имидж в глазах клиентов

За год работы был принят наш pull request в PHPStan с обновлением документации, нас указали на официальном сайте анализатора, разработали свои кастомные правила, а также разработали инструмент Phalyfusion, который объединяет результаты всех анализаторов и структурирует их по файлам (что значительно сокращает время на запуск и разбор ошибок для устранени). Кроме этого, Phalyfusion можно установить плагином для PHP Storm.

Вывод ошибок всех анализаторов сразу с группировкой по файлам
Вывод ошибок всех анализаторов сразу с группировкой по файлам
Подсветка ошибки в коде
Подсветка ошибки в коде
Окно с выводом ошибок по всему проекту
Окно с выводом ошибок по всему проекту
Как мы внедрили автоматические инструменты проверки кода и повысили свой имидж в глазах клиентов

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

Таким образом, казалось бы незначительное недовольство тем, что новый сотрудник ещё плохо разбирается в корпоративном code style привело к тому, что мы улучшили качество кода, перестали тратить время на обучение стандартам, упростили процесс ревью, получили конкурентное преимущество и стали больше зарабатывать. Главный вывод, который я бы хотел отметить, заключается в том, что любую незначительную мелочь, которая доставляет вам дискомфорт, можно превратить в силу, если найти правильный подход.

205205 открытий
Начать дискуссию