Начиная свой первый «настоящий» технический проект в компетентной компании, вы, вероятно, будете удивлены уровнем инструментов разработчика и автоматизации в кодовой базе.

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

На самом деле, есть много причин, по которым многие из нас никогда не работают над сложным проектом.

  • Вы научились программировать и в основном работаете над собственными проектами.
  • Вы создаете небольшие изолированные проекты в сжатые сроки.
  • Вы еще не нашли способную команду для работы

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

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

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

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

1. Интеграция и тесты E2E

Напишите тесты. Не слишком много. В основном интеграция.

Это цитата Гильермо Раух.

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

Отличные кодовые базы во многом полагаются на интеграционные и сквозные (E2E) тесты.

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

Инструменты, которые мы можем использовать для настройки тестов: средства запуска тестов (Jest, PyTest…), имитирующие серверы, докер.

2. Сообщения о чистых фиксациях

Каждый раз, когда вы фиксируете свой код, рекомендуется настроить шаблон для сообщений фиксации. Если вы являетесь пользователем Git, вы можете просто добавить `.gitmessage` в свой проект и настроить Git для использования вашего шаблона.

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

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

Таким образом, вы можете создать неразрывную связь между управлением проектом и созданием кода.

Инструменты, которые мы можем использовать для обеспечения соблюдения стандартов контроля версий: Commitzen, Традиционные коммиты, Gitmessages.

3. Инструменты контроля версий

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

Инструменты, которые мы можем использовать для управления версиями: инструменты Git Code Quality, Git, Linters.

4. Разрешения на ветвление и развертывание

Кто-то когда-нибудь случайно подтолкнет код к мастеру.

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

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

Инструменты, которые мы можем использовать для этого: системы контроля версий (GitHub, GitLab и т. д.), инструменты CI и CD.

5. Рабочий процесс контроля версий

Есть много способов работы с системами контроля версий. Независимо от того, работаете ли вы только с одной веткой, используете функции-ветки, stacked-git, squash-merge, rebase или что-то совершенно другое: вы должны определить рабочий процесс, который является единственной точкой истины для вашего проекта.

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

Инструменты, которые мы можем использовать для этого: составной git, базы знаний, документация по проекту.

6. Управление версиями и журналы изменений

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

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

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

Используйте этот совет, чтобы быть организованным в отношении ваших изменений.

Инструменты, которые мы можем использовать для этого: теги Git, семантическое управление версиями, инструменты управления репозиториями (например, Lerna).

7. Непрерывная интеграция

Инструменты CI помогают гарантировать, что вы не сломаете все приложение из-за одной неверной фиксации. Инструменты CI запускают линтеры, тесты, сценарии и т. Д. Перед объединением кода или развертыванием.

Ни один профессиональный программный проект не должен иметь установленного инструмента CI.

Инструменты, которые мы можем использовать для этого: инструменты CI (Circle Ci, действия Github и т. д.)

8. Скрипты (для общих действий)

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

Сценарии предлагают простой путь к обычным операциям.

Инструменты, которые мы можем использовать для этого: средства запуска сценариев (сценарии pyinv, npm, Gulp, Grunt и т. д.)

9. Заполнение базы данных

Вы часто будете попадать в ситуацию, когда вам удавалось преобразовать вашу базу данных в недопустимое состояние. Часто бывает быстрее просто сбросить базу данных, чем вручную воссоздать шаги миграции.

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

Это можно сделать с помощью e. г. загрузка фикстуры (пример данных из файла JSON) или создание фиктивных данных с помощью скрипта.

Инструменты, которые мы можем использовать для этого: генераторы фиктивных данных, скрипты баз данных, базы данных.

10. Документация по API

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

Есть разные способы документировать API. Следование стандарту может дать возможность некоторой интересной автоматизации, такой как автоматическая генерация шрифтов для вашего интерфейса (если вы используете строго типизированный интерфейс).

Инструменты, которые мы можем использовать для этого: Open API (2.0 или 3.0), Postman

Вывод

Ни один из этих советов не связан с магией. Фактически, настроить их часто довольно просто.

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

Надеюсь, этот список вас порадовал 👏🏼.

Я Флориан. Подписывайтесь на меня. Ты восхитителен. Продолжайте кодировать.

Если вы заинтересованы в увеличении органического охвата во всех социальных сетях, посетите https://gosquad.cc