В блоге Beeline Cloud на хабре мы уже поднимали тему ключевых трендов в сфере open source. Сегодня мы подобрали материалы, которые помогут влиться в открытую разработку и стать контрибьютором: от рекомендаций для начинающих и даже «вредных советов» до тематического репозитория в стиле awesome-подборок.

Изображение: freepik (freepik-free-license)
Изображение: freepik (freepik-free-license)

Первая тестовая площадка

Фронтенд-разработчик из Германии Рошан Джосси — ярый сторонник открытой разработки. Он курирует GitHub-репозиторий под названием first-contributions (под лицензией MIT). Его цель проекта — помочь начинающим сделать первые шаги в мире open source. По сути, проект Джосси представляет собой базовое руководство по работе с Git-инструментами и репозиториями в целом. В нем разбираются фундаментальные операции: создание форка и коммита, клонирование репо, работа с ветками, подготовка пул-реквеста для код-ревью и отправка изменений на GitHub. Каждый шаг сопровождается примерами команд и скриншотами интерфейса.

Что примечательно, для отработки навыков можно использовать тот же самый репозиторий — first-contributions. Так, начинающие могут отточить навыки и не беспокоиться о возможных ошибках. И неудивительно, что проект, который учит контрибьютить в открытые проекты, активно развивают участники open source-сообщества. Репозиторий переведен на 84 языка, включая русский, и набрал более 50 тыс. звезд на GitHub.

В конце README-файла автор собрал ссылки на дополнительные руководства и лучшие практики для работы с популярными инструментами, такими как Visual Studio Code или Intellij IDEA. А еще Рошан Джосси запустил тематическую страничку для выбора своего первого open source-проекта, к развитию которого можно присоединиться. В списке представлены даже такие известные проекты, как Reseter.css и Next.js. Правда, часть из них уже утратила актуальность и перемещена в архивы. Яркий пример — Rebus, который, в свою очередь, тоже был создан как учебный проект для начинающих в open source. 

Инсайты тысячи проектов

Исследователи из Университета Уэйна в штате Мичиган решили определить подходы и лучшие практики, которые могут помочь новичкам «закрепиться» в open source и увеличить шансы на то, что их исправления будут одобрены и включены в проект. Cпециалисты опубликовали статью, в которой проанализировали почти 500 публикаций научных статей и докладов из баз Google Scholar, IEEE, ACM и Scopus, выделив 15 часто встречающихся рекомендаций. Затем ученые изучили более тысячи проектов на GitHub, чтобы с помощью метода логистической регрессии оценить практическую эффективность предложенных советов — какие из них повышают шансы на принятие первого пул-реквеста от новичка, а какие оказываются бесполезными или даже контрпродуктивными.

Авторы работы пришли к выводу, что самый надежный путь для начинающего open source-разработчика — это браться за задачи из списка For Good First Issue и начинать с багфиксов или небольших правок. Такой подход повышает шансы. При этом исследователи предупреждают: не стоит зацикливаться на простых задачах. Чем раньше разработчик переходит к сложным проектам, тем стремительнее растет его квалификация и тем охотнее мейнтейнеры принимают предложенные правки. Что касается откровенно неудачных практик среди начинающих, то плохие шансы на успех имеют пул-реквесты с чрезмерно длинными или, наоборот, излишне упрощенными описаниями.

Сборник ресурсов для старта

GitHub-репозиторий в стиле awesome-списка с десятками полезных материалов для open source-контрибьютеров и списком проектов для старта. Эта подборка уже собрала 9 тыс. звезд и переведена на 25 языков, в том числе на русский (распространяется по лицензии CC-BY-SA 4.0). Ресурсы в сборнике структурированы по разделам. Среди них можно найти руководства по работе с GitHub и советы по коммуникационному этикету. Также есть литература о том, что происходит под капотом успешных открытых проектов.

Есть и специализированные блоки, например, посвященные корпоративным инициативам, открытым для участия. Также присутствует список готовых поисковых запросов для GitHub, которые помогают быстро находить задачи для начинающих — например, is:issue is:open label:beginner. Подборка обновляется (хотя и не очень часто), так что время от времени ее стоит перепроверять на наличие новых материалов.

Как «закрепиться» в проекте

Разработчик из Германии Сантош Ядав опубликовал материал, который будет полезен не только новичкам, но и опытным разработчикам, не представляющим, с какой стороны подступиться к open source-проектам. Это — материал в стиле «с чего начать», дополненный мнениями и рекомендациями экспертов, в том числе из крупных компаний.

Изображение: freepik (freepik-free-license)
Изображение: freepik (freepik-free-license)

Для тех, кто только начинает свой путь в сфере ИТ, автор рекомендует сфокусироваться на глубоком изучении предпочитаемой технологии. В этом контексте он советует обратить внимание на открытую веб-книгу Корбина Кратчли — «The Framework Field Guide». Пособие поможет понять, как устроены популярные библиотеки и фреймворки. Также Ядав отмечает, что первый вклад в open source можно сделать на уровне документации — заняться исправлением неточностей (например, с этого начинал сам автор).

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

Как освоить открытый код — руководство

Материал подготовил Анмол Баранвал — технический писатель и разработчик из Индии с многолетним стажем. Он подчеркивает, что прошел путь самоучки, набил немало шишек и хочет предостеречь от них начинающих специалистов. В своей статьей Баранвал разбирает базовые инструменты вроде Git, знакомит читателей с Markdown-разметкой. Он также приводит прикладные материалы: например, шпаргалку по Markdown с рекомендациями. Еще автор рассказывает о том, как правильно оформить issue и пул-реквест, чтобы быстрее влиться в работу и повысить шансы на принятие изменений.

Помимо технических деталей, в статье перечислены общие принципы работы с open source и гайды по разработке ПО для дополнительного чтения.

Вредные советы

Разработчик и open source-энтузиаст описал практики, которые отпугнут контрибьюторов от проекта. Материал написан не только ради шутки — автор объясняет, почему такие подходы неэффективны и мешают открытой разработке. Среди «вредных советов» — принимать патчи исключительно по электронной почте, погружая контрибьюторов в пучину бесконечных переписок. Автор иронично призывает придерживаться архаичных стандартов вроде C++03 вместо современного C++23, использовать устаревшие системы сборки и поощрять «спагетти-код», где любое изменение в одной ветке ломает десятки файлов. Конечно же, вредные советы и решения на их основе гарантированно делают проект неудобным и усложненным для участников. Но есть и мнение о том, что далеко не все высмеянные автором практики в действительности оказываются нелепыми.

Beeline Cloud — secure cloud provider. Разрабатываем облачные решения, чтобы вы предоставляли клиентам лучшие сервисы.

Больше тематических подборок в нашем блоге:

Комментарии (0)