Как поучаствовать в Open Source проекте? 8 ответов новичку
Подробно рассказываем, как поучаствовать в Open Source проекте и каковы главные особенности такой разработки.
35К открытий38К показов
Как поучаствовать в разработке Open Source проектов, какова их роль и что они могут дать вам как разработчику?
Начнём с того, что гордое название «Open Source» носят проекты с открытым исходным кодом, которые чаще всего разрабатываются и поддерживаются силами сообщества. Это значит, что устройство и принцип работы таких проектов прозрачны, а в разработке может принять участие любой желающий.
Участие в Open Source проектах — это возможность усовершенствовать свои навыки, создавая при этом что-то новое или улучшая уже существующее. При этом не имеет значения, изучаете вы основы PHP или являетесь продвинутым C++ разработчиком — открытых проектов уйма, на любой вкус и цвет. Начинающие программисты могут не только пополнить багаж знаний, научиться работать с чужим кодом и получать фидбек от опытных программистов, но также пополнить портфолио первой серьёзной работой.
Разбираемся, как поучаствовать в Open Source проекте и не ударить в грязь лицом.
Чем может быть полезен Open Source?
Тут всё зависит от ваших целей и задач. Кто-то начинает работать с Open Source, чтобы глубже изучить определённый технологический стек, кто-то — потому что сам использует тот или иной инструмент в работе и считает, что может его улучшить. Кто-то, как мы в ABBYY в случае с нашей библиотекой NeoML, сначала создаёт инструмент для решения внутренних задач, а потом понимает, что от его выхода в Open Source выиграет и компания, и сообщество. Есть разные пути — решите, какой из них больше подходит именно вам.
Работа в Open Source может дать много, если подойти к ней с умом. Навык чтения чужого кода здорово выпрямляет руки, работа с кураторами подтянет английский. А чувство, что вы приложили руку к крупному проекту (которых в Open Source достаточно), может неплохо смотивировать вас в карьерном плане.
Как найти Open Source проект?
Для участия в Open Source проекте самое главное — определиться со сферой собственных интересов. Это крайне важно, так как вам предстоит выбрать проект, максимально подходящий под ваши интересы и компетенции. Делается это просто. Крупнейший сайт с проектами — это Github. Там вы делаете поисковый запрос по ключевым словам, соответствующим интересам, например «javascript gamification framework». В ответ получаете список проектов, в каждом из которых вы можете поучаствовать.
Очевидный ответ, который напрашивается, — зайти на GitHub. Уже на месте стоит определиться с тематикой, хотя бы с точностью до крупной области. Затем погуглить, что есть на сайте на этот счёт.Новичку я бы посоветовал обратить внимание на GitHub Trending, где постят небольшие проекты.Начать просто: найдите проект, который вам по зубам, и предложите свои доработки. Вообще, нередко кураторы идут навстречу новичкам и охотно разъясняют, что упрощает процесс работы.
На что обращать внимание при выборе проекта?
Обратите внимание на ПО, которым пользуетесь сами: во-первых, вы уже знакомы с проектом как пользователь и хорошо понимаете, что стоит улучшить или изменить; во-вторых, вы будете вносить вклад в то, что важно для вас.
t
- Описание проекта — интересен ли он вам? Решает ли важную (интересную) проблему? Актуальна ли тема?
t- Популярность проекта. На Github это можно оценить по количеству звёзд — местному аналогу лайка.
t- Посмотрите на раздел с проблемами (issues): много ли там открытых и особенно закрытых проблем? Это поможет оценить простор для творчества.
t- Изучите часть описания проекта, относящуюся к сторонним разработчикам (contributing). Там, как правило, описывается простой способ, как настроить среду разработки под этот конкретный проект и прислать свои изменения. Иногда просто пишут «pull requests are welcome», то есть «ждём не дождёмся ваших исправлений и предложений».
t- Насколько давно были сделаны последние изменения в проекте, активно ли идёт разработка? Если да, то ваши изменения быстро рассмотрят и, возможно, примут. Если не активно — быть может, вы захотите взять продвижение проекта в свои руки?
t- Есть ли активное комьюнити? Часто у проекта может быть чат, форум или группа в соцсети, где разработчики активно обсуждают проект. Кроме того, активность можно посмотреть в комментариях к проблемам и предлагаемым изменениям.
Успех взаимодействия, конечно, зависит не только от разработчика. Важно, как выстроены процессы в команде, какая рабочая атмосфера, есть ли у нового специалиста возможность использовать именно тот стек технологий, который ему интересен. При обсуждении любых вопросов в команде, в чатах не должно быть токсичности — эффективна только конструктивная критика.
Каковы особенности Open Source разработки?
t
- В каждом Open Source проекте есть свои правила и ограничения для организации кода, построения архитектуры. Обычно всё это описывается в разделе contributing в README.md или в файле CONTRIBUTING.md (чаще всего находится в корне репозитория проекта).
t- Среди требований нередко встречается определённый код-стиль проекта, которого надо придерживаться.
t- Во многих проектах для каждого изменения требуется написание юнит-тестов. Без них изменения не принимаются.
t- Естественно, всё общение между участниками проекта ведётся на английском языке через систему pull-request, в специальных чатах или даже через email рассылки. Это также чаще всего описывается в разделе contributing.
Не стоит забывать про ведение документации. Процесс, может, не такой захватывающий и интересный, как разработка, но документация крайне важна для остальных участников проекта.
Каких Open Source проектов стоит избегать?
У проектов с открытым кодом есть и свои неприятные особенности:t
- Разработчик проекта может вести его в никуда. И такое бывает весьма часто! Если проект всё равно хорош, то вы можете сделать ответвление (fork) и разрабатывать его в правильном, по-вашему мнению, направлении.
t- Разработчик проекта может медленно отвечать. Вы видите, что обновления кода идут, но коммуникации с разработчиком никакой. Это плохой признак и знак того, что ловить здесь нечего.
t- Разработчик проекта может потерять интерес и забросить код. Это можно понять по количеству нерешённых проблем в репозитории и давним обновлениям кода.
Что стоит сделать перед тем, как принять участие в Open Source проекте?
Основной инструмент для участия в Open Source проектах — это, конечно, система контроля версий Git. Поэтому в первую очередь стоит ознакомиться с ним. Также можете испытать возможности GitHub Copilot — инструмента, который помогает разработчикам писать код.
Есть несколько важных условий для того, чтобы начинающий специалист справился с Open Source — впрочем, как и вообще с любым проектом. Требования к хардскиллам очевидны — нужно уверенно владеть выбранным стеком технологий. Софтскиллы, в свою очередь, помогают успешнее погрузиться в новый проект. Ключевые личные качества на этом этапе — дисциплина, коммуникации, готовность к командной работе, обучению и самообучению. Наконец, самому разработчику при выборе проекта стоит внимательно оценивать порог входа — в Open Source бывают такие задачи, с которыми и сеньор не сразу справится.
А как быть с внесением изменений в проект?
Pull request — запрос на изменение кода в репозитории. Перед началом работы обязательно создайте свою ветку, в которую вы будете вносить изменения. Если речь идёт о master-ветке, любые изменения стоит вносить только после согласования с куратором проекта.
Отличной практикой будет предварительный показ вашей работы кому-нибудь, ведь вы могли что-то упустить или просто свернуть не туда. В этом случае вас могут попросить изменить что-либо в вашем PR.
Как начать свой Open Source проект?
Это ещё один ответ на вопрос, как поучаствовать в Open Source проекте: создайте его сами. Но для начала определитесь с целью, взвесьте все «за» и «против», убедитесь, что готовы взять на себя ответственность за труд других людей и уверенно двигаться к релизу.
Если начинать свой Open Source проект, то необходимо привлечь к нему внимание через англоязычные порталы. Самый простой вариант — публиковать ссылки на портале Reddit в нужных подразделах с тематикой «программирование». Это обеспечивает больший отклик, чем публикация на любом русскоязычном сайте. Естественно, стоит рассказать о проекте и на таких ресурсах, как Хабр, DTF и в тематических группах ВК.
35К открытий38К показов