Использование автоматизации для улучшения проверки кода.

TL;DR

  1. Следующие соглашения и стиль важны для читабельности кода и выявления ошибок.
  2. Мы можем сэкономить время во время проверки, убедившись, что наш код следует соглашениям перед отправкой запроса на изменение с помощью автоматизации.
  3. Стиль и ошибки - две разные проблемы. Мы можем настроить эти инструменты, чтобы позаботиться о каждой из этих проблем:

Красивее, чтобы форматирование выглядело красиво.

Lynt, чтобы следить за качеством кода, выявлять ошибки и применять передовые методы.

Husky и Lint-Staged автоматически решают эти задачи.

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

По общему признанию, наша команда потратила драгоценное время на проверку, придираясь к тривиальным вещам - таким как отступы, точки с запятой или использование let vs const - и есть это исследование, которое обнаружило, что 20% комментариев при проверке кода касаются стиля и лучших практик.

Мы можем вернуть это время назад, запретив участникам коммитить код, который противоречит соглашениям о кодировании, путем автоматизации.

Используйте Prettier для обеспечения соблюдения стандартов стиля кодирования.

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

Prettier можно использовать изолированно, добавив расширение в Visual Studio Code. Чтобы убедиться, что к каждому участнику применяются одни и те же правила стиля, выполните следующие действия, чтобы запустить Prettier через интерфейс командной строки:

  1. Установите Prettier в проект devDependencies:
yarn add prettier --dev --exact

2. Добавьте файл .prettierrc в корень вашего проекта:

Используйте Lynt для проверки ошибок.

Если вы какое-то время писали на JavaScript, возможно, вы знакомы с ESLint. Это инструмент, который разработчики используют для статического анализа кода, чтобы найти проблемные шаблоны, или чтобы вы знали, когда ваш код не соответствует определенным рекомендациям по стилю.

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

Lynt не придерживается мнения о стиле кода, поэтому вы можете положиться на лучшие части ESLint (которые Lynt использует под капотом) для проверки ошибок и Prettier для решения проблем, связанных со стилем.

  1. Установить Lynt
yarn add lynt --dev

2. Добавьте этот скрипт для Lynt в свой package.json:

Автоматизируйте эти задачи с помощью lint-staged и хаски.

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

Приведенные выше конфигурации Prettier и Lynt могут быть запущены с помощью инструмента pre-commit для переформатирования промежуточных файлов и предотвращения фиксации, если линтер обнаружит потенциальные ошибки, которые необходимо исправить.

  1. Установите хаски и пуховик:
yarn add lint-staged husky --dev

2. Добавьте этот конфиг в свой package.json:

3. Добавьте перехватчик предварительной фиксации в скрипты package.json:

Теперь, когда мы git commit, поэтапные файлы будут автоматически отформатированы и не смогут зафиксироваться, если линтер обнаружит какие-либо ошибки.

В заключение…

Совместное использование Lynt и Prettier упростит устранение проблем, связанных со стилем кода, и выявление потенциальных ошибок.

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

Не стесняйтесь комментировать ниже, делиться своими мыслями и спрашивать меня о чем угодно 😺

Учить больше