hwdtech blog
Our pull-requests: наш вклад в Google, Chromium, React и другие репозитории
Почему для нас важен open source, какой вклад мы внесли в развитие открытого программного обеспечения и какими коммитами можем похвастаться.
25-02-2020
open source, PR, pull-request, HWdTech
Время чтения: 5 минут
В данной подборке мы хотим поделиться с вами нашей экспертизой, но достаточно необычным способом. Точнее – не просто «нашей экспертизой» как компании HWdTech, но достижениями наших коллег в сфере opensource.
Мы публикуем интересные pull-request'ы (список будет пополняться!), сделанные нашими коллегами, стажерами (и коллегами, когда те еще были стажерами), в различные крупные и широко известные репозитории. Разумеется, речь пойдет только о принятых PR.
Почему это важно?
Во-первых, это этично. О том, почему opensource делает мир лучше, мы поговорим ниже, а сейчас просто отметим: участие в разработке открытого ПО – это своеобразная «открытость миру», благотворительность и помощь единомышленникам.

Во-вторых, в IT-сфере коммиты и PR (особенно в крупные репозитории) – это своеобразный критерий крутости для разработчиков, предмет для гордости и повод для обсуждения. Ценность их, понятное дело, осознают преимущественно лишь сами программисты – что делает их еще более любопытным явлением.
Зачем нужен open source?
Давайте сделаем небольшое лирическое отступление и поговорим о том, в чем вообще суть open source-движения. Для многих участие в разработке открытого программного обеспечения проходит под лозунгом «мы делаем мир лучше» - очень… человечная мотивация, согласитесь? То есть, это не только профессиональный опыт, подтверждение своих знаний и возможность реализовать свои собственные проекты, но и своего рода безвозмездная помощь.
- В целом, это аналог благотворительности. Очевидно, что любое программное обеспечение, которое мы встречаем в своей жизни, кем-то пишется, кто-то тратит на это свое время и усилия, кто-то тратит деньги, чтобы платить зарплату разработчикам и пр. Соответственно, чтобы получить доступ к этому ПО, вы должны купить его. Но кроме этой системы существует opensource – это сообщество, в котором люди по собственной инициативе совместно разрабатывают ПО и распространяют его бесплатно. Собственно, вот в этом и заключается благотворительность. Считается хорошим тоном вносить свой вклад в opensource-движение. Все наши коммиты – это тоже вклад в opensource, как серьезный, так и «шуточный», но на самом деле все равно полезный. К тому же, возможность похвастаться своими пулл-реквестами – это шанс помериться достижениями для разработчиков. Чем более значимый и крутой проект, в котором ты оставил свой след, тем яснее это свидетельствует о твоем высоком уровне. Чем солиднее репозиторий, где приняли твой PR, тем сильнее можно потешить свое самолюбие в самом лучшем смысле этих слов, - Яков Лило, CTO of HWdTech.
Не только самоутверждение
Есть еще целый ряд причин, по которым участие в разработке открытого ПО достойно внимания. В первую очередь, оно сказывается на карьере программиста и отражается на статусе команды, в которой он работает. Каким образом?

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

-Портфолио. Когда разработчику есть что показать – это важно, независимо от того, устраивается он на работу или его рекомендуют на проект. Коммиты или профиль на GitHub может быть отличным критерием оценки (более того, это уже используется таким образом).

-Свобода действий. Зачем ждать выхода новой версии библиотеки, если можно исправить баг своими руками (у нас ниже будут подобные примеры).

-Боевое братство. То, что вы делаете – важно и значимо. Обычно, opens ource-сообщество воспринимает вклад в него с отдачей и признанием. И всячески мотивирует тех, кто, может быть, еще не так уверен в себе пробовать и участвовать в разработке открытых проектов. Например, есть такое мероприятие, как Hacktoberfest, о котором мы пишем каждый год (и в котором участвуем, конечно же) – почитайте о нем здесь.
Наши достижения
1. Наш стажер Роман Калмыков, который теперь уже наш коллега Роман, во время разработки столкнулся с проблемой при использовании стороннего компонента - фреймворка React-admin. Чтобы решить ее, он стал читать исходники, где самостоятельно обнаружил ошибку в коде. В итоге он помог всему opensource сообществу, пофиксив эту проблему. Его pull request был принят, чем мы очень гордимся.

А вот ссылка на задачу: https://github.com/marmelab/react-admin/issues/3081
2. Наш стажер Андрей, который тоже на сегодняшний день уже наш коллега Андрей, рассказал очень интересную вещь о том, как он нашел ошибку в работе Chromium.
- Итак, 4 августа я написал про проблему в движке многих браузеров Chromium (Chrome и тд). И 22 августа компания Google исправила проблему. Она заключалась в том, что, если браузер Chrome и любой другой на этом движке находился в режиме инкогнито и получал специальные данные с сервера, то браузер терял весь свой сеанс, выходил из строя и все вкладки удалялись. Эту проблему можно было использовать для определения что человек в режиме инкогнито сидит. Сам коммит делал не я, потому что нахожу уязвимости, а не исправляю, - Андрей Кулагин, разработчик HWdTech.
А ссылка на коммит, тем не менее, вот.
3. Часто наши коллеги вовсе не хотят хвастаться своими достижениями и приходится применять методы допроса, чтобы узнать, в каких репозиториях они оставили свой след. Вот, например, наш старший разработчик Максим Малов в итоге поделился следующими ссылками:
- пришлось удалить ссылку на рекламу из readme https://github.com/Azure/iisnode/pull/65/
- самый долгожданный мердж (в проде мой форк использовался почти полтора года) https://github.com/iStefo/ember-select-2/pull/130
- самая долгая история улушений, началось все с https://github.com/inversify/InversifyJS/issues/487 и закончилось https://github.com/inversify/inversify-express-utils/pull/35
- как-то раз у нас упал билд на прод, пришлось срочно контрибутить https://github.com/stefanpenner/broccoli-stew/pull/152
- иногда приходится доказывать свою точку зрения https://github.com/jasonmit/virtual-each/pull/110 https://github.com/styled-components/styled-components-website/pull/599
5. Вообще, сама идея этого материала появилась после того, как наш технический директор Яков Лило рассказал о своем «эпичном» вкладе в один из проектов Google. По его собственному признанию, стоило 15 лет учиться на программиста, чтобы исправить…опечатку в документации.
- Этот коммит – отличная шутка. Получился он случайно: как-то вечером я просто шарился по разным репозиториям крупных проектов, искал возможность сделать PR для участия в Hacktoberfest. Просмотрел огромное количество репозиториев Microsoft, реально, просто рандомно выбирал крупные компании, а потом наткнулся на очередной проект Google. Он недавно обновился и был в топе, поэтому я случайно обратил на него внимание – и так же случайно заметил опечатку в документации. Оформил, PRприняли – это было очень смешно. Насколько я помню, слово «divided» было неправильно написано, - Яков Лило, CTO of HWdTech.
А если серьезно…Яков сознался, что свой вклад в публичные проекты он внес и без всяких шуток, вот несколько ссылок на его PR, которые в юмористическую категорию уже не попадают: https://github.com/limpkin/mooltipass/pull/405 https://github.com/limpkin/mooltipass/pull/403 https://github.com/limpkin/mooltipass/pull/402
С его проектами в opensourceможно познакомиться здесь:https://github.com/jacob-l
Продолжение следует!
В следующем выпуске мы дополним этот материал новыми коммитами и пулл-реквестами от других наших коллег (или от тех же самых – но выведаем что-нибудь свеженькое!). Ну а пока пишите в комментариях, где удалось отметиться вам, хотелось ли вам внести свой вклад в развитие opensource и важно ли это вообще по вашему мнению.
Раз в месяц мы делаем рассылку с анонсом новых кейсов и статей, опубликованных на сайте.
Подпишитесь на обновления.
Гарантируем - никакого спама. Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой в отношении обработки персональных данных.