Как сохранить стили кодирования при участии

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

Как сохранить стили кодирования при создании собственных проектов с открытым исходным кодом

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

Раньше эта задача была зарезервирована для процесса проверки кода. Вы бы просмотрели чей-то код и небрежно упомянули, что «мы делаем это в этом проекте». И я знаю себя, это высказывание, что несколько раз звучит так, как будто вы довольно анальны в отношении того, как вы хотите, чтобы код выглядел 😅.

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

Какие инструменты доступны, чтобы помочь?

RuboCop - статический анализатор кода Ruby. Изначально он будет обеспечивать соблюдение многих рекомендаций, изложенных в Руководстве по стилю Ruby сообщества.

Rubocop используется в проектах Ruby. Это инструмент, который я использовал, когда делал пулреквест в проекте Faker. Он работает, обнаруживая в вашем коде нарушения. Правонарушения - это код, не соответствующий стандарту, определенному в конфигурации Rubocop.

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

Я обратился к линтеру с помощью JSHint, когда впервые начал создавать веб-приложения с использованием Javascript. Это было легко интегрировать в мой рабочий процесс с помощью команд npm и избавило меня от нескольких ошибок новичка!

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

ESLint - это проект с открытым исходным кодом, изначально созданный Николасом Закасом в июне 2013 года. Его цель - предоставить подключаемую утилиту линтинга для JavaScript.

Я помню, как переключился с JSHint на ESLint, когда начал использовать синтаксис ES6. Есть множество конфигураций, которые вы можете подключить к ESLint через npm. Вот некоторые популярные из них:

Эти конфигурации могут быть легко расширены с помощью файла конфигурации .eslintrc, который позволяет отключить висящие запятые 👀

Pylint - это анализатор исходного кода Python, который ищет ошибки программирования, помогает обеспечить соблюдение стандарта кодирования и выявляет некоторые запахи кода (как определено в книге Мартина Фаулера Рефакторинг).

Я не использую Python регулярно, но когда я это делаю, мне нравится следить за тем, чтобы я следовал стандартам, которые распространены в сообществе Python. Трудно адаптироваться к стандартам, если вы не читаете исходный код других на регулярной основе.

Вы можете настроить этот линтер с помощью конфигурационного файла pylintrc.

Почему так важен стиль составного кода?

Он заставляет всех разработчиков, работающих над проектом, адаптироваться к стилю вашего проекта.

У всех нас есть особый способ написания кода, и было бы здорово внести свой вклад в проект в нашем собственном стиле. Но представьте, что через несколько месяцев вы просматриваете исходный код ...

Я могу представить это как беспорядок из:

  • Несогласованный синтаксис
  • Переменные объявлены странным и чудесным образом
  • Циклы повторяются по-разному
  • Функции, использующие комбинацию обратных вызовов, обещаний и синтаксиса async / await

Вывод

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