- Оригинальный адрес:Start your open-source career
- Оригинальный автор:Vincent Voyer
- Перевод с:Программа перевода самородков
- Постоянная ссылка на эту статью:GitHub.com/rare earth/gold-no…
- Переводчик:деревянное перо
- Корректор:Лю Вэньжэ,SeanW20
Начните свою карьеру с открытым исходным кодом
В этом году я выступил с докладом о том, как сделать проекты с открытым исходным кодом успешными, обсудив, как подготовить наши проекты с открытым исходным кодом, чтобы гарантировать, что мы привлечем все виды вклада, включая задавание вопросов, написание документации или обновление кода. Затем я получил отзыв: «Вы показали, как сделать проект с открытым исходным кодом успешным, и это здорово, ноС чего мне начать свой путь с открытым исходным кодом?Эта статья является ответом на этот вопрос, объясняя, как и где начать участвовать в проектах с открытым исходным кодом, и как открывать свои собственные проекты.
Знания, которыми здесь делятся, основаны на опыте: вAlgoliaМы выпустили и поддерживали ряд проектов с открытым исходным кодом, которые со временем оказались успешными, и я потратил много времени, участвуя и создавая новые.проект с открытым исходным кодом.
Тысяча миль начинается с одного шага
Шесть лет назадFasterize(поставщик ускорителей веб-сайтов), поворотный момент в моей карьере. мы вNode.jsРабочие столкнулись с серьезнымипроблема с утечкой памяти. Изучив весь код, кроме исходного кода Node.js, мы не нашли никаких признаков, которые могли бы вызвать эту проблему. Наш обходной путь состоит в том, чтобы перезапускать эти рабочие процессы каждый день, чтобы освободить память, и все, но мы знаем, что это не элегантное решение, поэтомуЯ хочу понять эту проблему в целом.
Stéphaneисправить запросбыл объединен и решил нашу собственную утечку памяти.
Это придало мне большую уверенность. Среди 30 других людей, которых я уважаю и которые внесли свой вклад в файлы http.js, многиеisaacs(NPM Creator) Такой хороший разработчик, это заставляет меня понять, что код является кодом, независимо от того, кто его написал.
Сталкиваетесь ли вы с ошибками в проектах с открытым исходным кодом? Копайте глубже и не останавливайтесь на временном решении. Ваше решение принесет пользу большему количеству людей и принесет больше вкладов в открытый исходный код.читать чужой код. Вы можете не решить свою проблему сразу, это может занять некоторое время, чтобы понять, но вы изучите новые модули, новый синтаксис и различные формы кодирования, и все это подтолкнет вас к тому, чтобы стать разработчиком проекта с открытым исходным кодом.
Перед горой должна быть дорога
Репозиторий Node.jsпервый добавленный тег на
«Понятия не имею» — распространенная ошибка для разработчиков, которые хотят внести свой вклад в сообщество открытого исходного кода, но не думают, что у них есть хорошее вдохновение или проекты, которыми можно поделиться. Ну, на это я бы сказал: это нормально. Есть возможность делать взносы с открытым исходным кодом. Многие проекты начали перечислять отличные вклады для начинающих, отмечая или отмечая.
Вы можете найти вдохновение благодаря вкладу этих сайтов:Open Source Friday, First Timers Only, Your First PR, CodeTriage, 24 Pull Requests, Up For Grabsа такжеContributor-ninja(список изopensource.guide).
создать некоторые инструменты
О GitHub59 000 шаблоновбиблиотека, опубликовать ее несложно, но это хорошо для вас
Плагин импорта автоматизации шаблоновВот такAtomа такжеVisual Studio CodeПриступайте к созданию плагинов на чистом JavaScript. Те замечательные плагины, которые уже существуют в Atom или Sublime Text, не отображаются в вашем любимом редакторе?тогда сделай один.
ты даже можешьwebpackилиbabelПредлагайте плагины для некоторых особых случаев использования стека JavaScript.
С другой стороны, большинство платформ заявятКак создавать и выпускать плагиныТаким образом, у вас нечего учитывать, как это сделать.
.他们仍然具有价值,但是很多问题和 PRs 被堆放在仓库中一直没有得到维护者的反馈。чем вы сейчас занимаетесь?
- Опубликовать ветку с новым названием
- стать новым сопровождающим
Я предлагаю вам сделать и то, и другое одновременно. Первое поможет продвинуть ваш проект, а второе принесет пользу вам и сообществу.
Вы можете спросить, как стать новым сопровождающим? @ Защитники по электронной почте или в Твиттере и сказали ему: «Привет, как я могу помочь вам сохранить этот вид проекта?». Обычно они эффективны, и это хороший способ сделать вы открывать собственную карьеру в известном открытом исходном и ценным предметам.
Пример: возродить заброшенный проект
Создайте свой собственный проект
Лучший способ открыть для себя собственные проектыОбратите внимание на некоторые проблемы, которые сегодня плохо решаются.如果你发现,当你需要一个特定的库来解决你的一个问题而未果时,此刻便是你创建一个开源库的最佳时机。
В моей карьере есть еще одинрешающий момент. В Fasterize нам нужен быстрый и легкий ленивый загрузчик изображений для повышения производительности нашего веб-сайта. Это не плагин jQuery, а независимый проект, который можно загружать и эффективно использовать на других веб-сайтах. Я долго искал и не смог найти готовую библиотеку во всей сети. Тогда я сказал: «Все кончено, я не нашел хорошего проекта, мы не можем его одобрить».
На это Стивен ответил: «Хорошо, тогда давайте создадим его». Хм~ Ладно, я начал копипастить одинРешения на StackOverflowв папку JavaScript, создалЛенивый загрузчик изображенийи закончился использовать что-то вродеFlipkart.com(Ежемесячно более 200 миллионов посещений, индийский веб-сайт занимает девятое место) на сайтах, подобных этому. После этой успешной практики мое сознание было связано с открытым исходным кодом. Я вдруг понял, что открытый исходный код может быть еще одной частью моей карьеры разработчика, а не просто легендой и мифом.10x программистовКомпетентные области.
Не проблема решена: многоразовый способ ее решения!
.如果你决定不构建可重用的库,而是在自己的应用程序中内联一些代码,那就错失良机了。可能在某个时候,别人将创建这个本该由你创建的项目。不如即刻从你的应用程序中提取并发布这些可复用模块。
- написать хорошийREADME, с участиемВерсия значкаИ индикаторы видимости
- Создайте эксклюзивный и хорошо продуманный онлайн-сайт для проекта. допустимыйPrettierнайти вдохновение
- Найдите вопросы на StackOverflow и GitHub, связанные с вашими решенными проблемами, и опубликуйте свой проект в качестве ответа.
- Поместите в свой проектHackerNews, reddit,ProductHunt,Hashnode
- Информация о доставке о вашей платформе в вашем новом проекте
- Посетите несколько семинаров или сделайте презентации, чтобы представить свой проект
Покажите миру свой новый проект
Не бойтесь размещать сообщения на слишком большом количестве сайтов, пока вы убеждены, что то, что вы создали, ценно, невозможно переоценить количество информации. В целом, сообщество открытого исходного кода приветствует обмен.
Будьте терпеливы и продолжайте повторять
С точки зрения популярных показателей (звезд и загрузки), некоторые проекты будут выпущены в первом дне, а затем перестают рано рано. Другие проекты станут самыми горячими проектами в заголовках после года осадков. Поверьте, что ваш проект скоро будет обнаружен другими, а если нет, вы чему-то узнаете: оно может быть бесполезным для других, но для вашего следующего проекта будет еще один удар вашего богатства.
У меня много элементов почти 0, напримерmocha-browse, но я никогда не был разочарован, потому что у меня не было больших ожиданий. Вот что я думал в начале проекта: я нашел хорошую проблему, я постараюсь ее решить, может быть, это кому-то понадобится, может быть, нет, так что в этом нет ничего страшного.
Два проекта для одного решения
Это то, что я делал в любимой части с открытым исходным кодом. 2015 Algolia, мы искали решение, которое мы могли бы использовать для модульного тестирования и замораживанияJSXВыходной html, чтобы мы могли сгенерировать нашу библиотеку пользовательского интерфейса React для написания компонентов React.InstantSearch.js.
Поскольку JSX компилируется в вызовы функций, нашим решением в то время было написать методыexpect(<Component />).toDeepEqual(<div><span/></div>)
, также просто сравните выходные данные вызова двух функций, но эти выходные данные вызова представляют собой сложные деревья объектов, которые могут выводиться во время выполнения.Expected {-type: ‘span’, …}
. Сравнение входных и выходных данных невозможно, и разработчики злятся во время тестирования.
Для решения этой проблемы мы создалиalgolia/expect-jsx, что позволяет нам использовать строки JSX для сравнения в модульных тестах вместо этих нечитаемых деревьев объектов. Вход и выход теста будут использовать одну и ту же семантику. На этом мы не остановились, мы выпустили не одну библиотеку, а две библиотеки, одну из которых перегнали с первой.
- algolia/react-element-to-jsx-stringПреобразование возврата функции JSX в строку JSX
- algolia/expect-jsxДля связывания react-element-to-jsx-string и библиотеки утвержденийmjackson/expect
Публикуя два модуля, которые работают вместе для решения проблемы, вы позволяете сообществу извлечь выгоду из вашего базового решения, которое можно применять во многих различных проектах способами, о которых вы даже не подозревали.
Например, react-element-to-jsx-string используется во многих других средах тестирования ожиданий, а также в таких приложениях, какstorybooks/addon-jsxЭтот тип документа плагин. Теперь, если вы хотите проверить результат вывода компонента React, используйте
Будьте готовы быть открытыми и оптимистичными, как только вы начнете получать отзывы и дополнения с открытым исходным кодом. Вы получите как похвалу, так и неодобрение. Помните, что любое общение с пользователем — это вклад, даже если это может показаться жалобой.
Во-первых, нелегко передать намерение или тон в письменной форме. Вы можете использовать «это здорово, это действительно отстой, я не понимаю, я счастлив, мне грустно», чтобы объяснить «странно ...», запросить более подробную информацию и попытаться воспроизвести проблему для лучшего понимания. как это произошло.
Некоторые советы, чтобы избежать реальных жалоб:
- Для того, чтобы лучше направлять пользователей для предоставления отзывов, необходимо предоставить имISSUE_TEMPLATE, вы можете предварительно заполнить шаблон при создании нового вопроса.
- Минимизируйте сопротивление новым участникам. Имейте в виду, что они могут быть еще не в образе и будут рады поучиться у вас. Не из-за отсутствия точки с запятой
;
Просто отклоните их запрос на слияние, чтобы они чувствовали себя в безопасности. Вы можете мягко попросить их исправить это, и если это не сработает, вы можете просто слить код и написать тесты и документацию самостоятельно.
наконец
Спасибо за чтение, я надеюсь, вам понравится эта статья и поможет вам найти проект, в котором вы хотите помочь или создать. Участие в сообществе с открытым исходным кодом — отличный способ расширить свои навыки, не обязательный опыт для каждого разработчика, но отличная возможность выйти из своей зоны комфорта.
Теперь я с нетерпением жду вашего первого или следующего проекта с открытым исходным кодом, вы можете @me на Twitter@vvoyer, я был бы рад дать вам несколько советов.
Если вы любите открытый исходный код и хотите практиковать его в компании, а не в свободное время, Алголия имеетРазработчик JavaScript с открытым исходным кодомРабочие места предоставляются.
Другие ресурсы, которые могут вам понравиться:
- opensource.guideУзнайте, как начать и развивать свой проект
- Octobox
- Probot
- Refined GitHub
- OctoLinkerПредоставляет отличные возможности для просмотра чужого кода на Github.
благодарныйIvana,Tiphaine,Adrien,Josh,Peter,Raymond,деревянное перо,Лю Вэньжэ,SeanW20Помогите сделать эту статью для рассмотрения и взносов.
Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из Интернета сНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,внешний интерфейс,задняя часть,блокчейн,товар,дизайн,искусственный интеллектЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.