Поиск по сайту:

Лучшие инструменты для кодирования в командах


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

Размещенное решение Git (Gitlab, GitHub и т. д.)

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

Во-первых, есть GitHub, который на сегодняшний день является самым распространенным провайдером Git. Это здорово и предоставляет массу функций, но больше ориентировано на общедоступное сотрудничество с открытым исходным кодом, чем на удовлетворение потребностей частных команд. GitHub предлагает неограниченное количество частных репозиториев бесплатно с прошлого года, что подойдет для большинства небольших проектов. Если вам нужно разместить его самостоятельно или вам нужны корпоративные функции, вы можете заплатить за GitHub Enterprise, который стоит 21 доллар США за пользователя в месяц при минимальном количестве пользователей 10.

Если вы хотите что-то более ориентированное на частные команды, вы можете рассмотреть GitLab. Помимо того, что это полнофункциональное размещенное решение Git, оно также предоставляет множество инструментов для команд, желающих внедрить рабочий процесс DevOps. Проблемы GitLab — это базовая доска Канбан, такая как Jira, которая используется для отслеживания проблем. GitLab CI может запускать автоматизированные сборки и тесты аналогично Jenkins, важной части конвейера CI/CD.

Вы также можете запустить бесплатную версию GitLab Community Edition с открытым исходным кодом на своих собственных серверах под своим собственным доменом. Если вы хотите платить за дополнительные функции, базовая версия стоит 4 доллара за пользователя в месяц, а стандартная версия стоит, как и GitHub, 19 долларов за пользователя в месяц.

Это два больших, но есть много других решений. BitBucket от Atlassian очень хорошо интегрируется с Jira и Confluence, а CodeCommit от AWS без проблем работает с их решением CodePipeline CI/CD.

Отслеживание проблем (Jira)

Разработка программного обеспечения — это беспорядок, и без руководства может быть очень сложно работать вместе. Чтобы что-то сделать, необходимо иметь какое-то средство отслеживания проблем.

Наиболее популярным и рекомендуемым решением для этого является Jira от Atlassian Software. Jira — это канбан-доска, в которой отдельные «проблемы» представлены карточками в списке. На доске есть несколько списков, например «Незавершенные работы», «Выполняется» и «Готово». Карточки перемещаются из списка в список в зависимости от того, на какой стадии разработки они находятся. Проблемы можно комментировать, связывать с другими проблемами, сортировать в большие блоки функций и назначать другим членам команды. Вы можете прочитать наше руководство по его использованию здесь, чтобы узнать больше.

Если вы не хотите платить за Jira, проблемы GitLab — бесплатная альтернатива, а Trello — простое решение Kanban, которое предназначено не только для разработки программного обеспечения.

Автоматизированная CI/CD (Jenkins, CodePipeline)

Непрерывная интеграция/непрерывное развертывание (CI/CD) — это процесс очень частого выпуска новых обновлений кода, обычно не реже одного раза в день. За этим процессом очень сложно следить без какой-либо автоматизации для обработки раздражающих частей, таких как создание и тестирование новых выпусков и отправка обновлений на ваши серверы.

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

Если вы используете AWS, вы можете использовать их собственный конвейер CI/CD, который называется CodePipeline. Это автоматизирует каждый этап разработки, от управления исходным кодом до сборки и тестирования, а также развертывания в различных сервисах AWS, таких как EC2, ECS и даже Lambda.

Общий доступ к файлам и документам (G Drive и Confluence)

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

Многим для этого хорошо подходит G Suite от Google (в частности, Google Диск). Если вы не хотите платить за учетные записи для всех членов вашей команды, хорошо подойдет папка Google Диска, доступная для их личной электронной почты. Dropbox — еще одно решение, также предлагающее бизнес-версию для платных клиентов.

Если вы ищете что-то более профессиональное, обратите внимание на Confluence от Atlassian. Confluence — это совместная рабочая среда для совместной работы над документами, очень похожая на G Drive, но для корпоративных клиентов. Самое приятное то, что, как и Jira, он бесплатен для 10 пользователей, а после этого стоит 5 долларов за пользователя в месяц.

Докер

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

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

Docker также упрощает развертывание. Поскольку вам не нужно беспокоиться о сервере, на котором он работает, вы можете запускать Docker на чем угодно, включая такие сервисы, как Elastic Container Service от AWS, которые запускают контейнеры без предоставления серверов. Если вам нужно управлять целым парком контейнеров, инструменты оркестрации, такие как Kubernetes, также справятся с этим.

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