seungwon

Опыт участия в проектах с открытым исходным кодом

  • Язык написания: Корейский
  • Страна: Республика Кореяcountry-flag
  • ИТ

Создано: 2025-05-03

Обновлено: 2025-05-27

Создано: 2025-05-03 00:00

Обновлено: 2025-05-27 09:42

Эта статья призвана вселить надежду тем, кто интересуется open source, но испытывает страх: «Как я посмею?», «С чего начать?».

Сегодня я хочу поделиться опытом, как я набрался смелости, чтобы открыть двери open sourceи что я узнал и почувствовал в этом процессе.

Open Source?

Изучая разработку, вы часто сталкиваетесь со словом 'open source'. Если посмотреть на GitHub, то можно увидеть множество проектов, которые открыто делятся своим кодом, меняющим мир.

Проекты, которые открывают код для внешнего доступа, называются 'open source'.
Например, OpenJDK, Spring Framework, Redis, React и другие крупные open source проекты.

Вклад в Open Source

Я сделал вклад в open source 4 раза. Я вношу вклад в open source, находя небольшие, незначительные улучшения, а не добавляя новые функции, которые перевернут мир.

Я не знаю стиля кода этих проектов, и я не знаю, как они работают.

Вы можете увидеть, что вы можете внести вклад в сообщество, даже если вы не понимаете код идеально. Я работаю в разработке всего 2 года, и я не думаю, что у меня есть талант к разработке.

Мне просто нравится вносить вклад в open source и общаться в сообществе разработчиков, поэтому я продолжаю эту деятельность.

Почему я хотел внести вклад в open source?

Честно говоря, сначала у меня тоже была мысль: «Не будет ли здорово добавить еще одну строчку в резюме?» Я много об этом думал. Но была и другая мотивация. Это было стремление «учиться глубже» и потребность «решить проблему, с которой я столкнулся».

В командном проекте у меня была возможность углубленно изучить Project Reactor, базовую технологию Spring WebFlux. Я понимал концепцию из книг и документации, но это было область, где я мог понять, как это работает и оптимизируетсяв реальных сложных системах, только посмотрев и попробовав код. Я также часто задавался вопросом: «Как я докажу, что усердно изучал Reactor?», и у меня возникло желание 'внести вклад в open source!'.

Как только я решил 'внести вклад!', я понятия не имел, с чего начать. Меня пугало все: от поиска части кода, которую нужно изменить, до предсказания того, как мои изменения повлияют на всю систему.

Я долго думал: «Что, если я отправлю PR, и меня будут ругать?» Поэтому потребовалось много времени, чтобы зарегистрировать PR.

Reactive Command в Lettuce, клиенте Java Redis, который я использовал в Reactive Stack, был основан на Reactor, и я хотел улучшить его, непосредственно изменив цепочку Reactor на основе обучения Reactor.

Просто сделав форк, я просмотрел весь код, содержащий строки 'Reactive', 'reactor', сопоставляя строки. Кажется, я проверил весь код, в котором были цепочки Publisher, такие как Mono и Flux.

Просматривая код, мне повезло, и я обнаружил код, который использовал цепочку Reactor, в которой была снижена читаемость и не было правильной цепочки методов. Это было не улучшение функций или изменение архитектуры, которое бы перевернуло мир, но это было маленькая и четкая проблема, которую я мог понять и исправить. Я подумал: 'А, в таком случае я тоже могу внести свой вклад!'.

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

Я закоммитил измененное содержимое и, наконец, пришло время отправить PR. Честно говоря, я долго думал и колебался, прежде чем нажать кнопку «Отправить». Я беспокоился: «В порядке ли отправлять PR с таким количеством изменений?», «Может быть, я исправил что-то очевидное?», «Смогу ли я хорошо объяснить на английском?».

Как я уже говорил, у меня был большой страх, что меня будут ругать из-за моих недостатков. Но я решился, подумав: «Начало – половина дела», «Если не попробуешь, ничему не научишься», и я отправил PR с подробным описанием изменений и причин.

Опыт участия в проектах с открытым исходным кодом

redis/lettuce - #3061

Наконец, мой PR был 'Merged', и я почувствовал огромное чувство выполненного долга и гордости, когда понял, что код, который я написал и изменил, стал частью известного open source проекта, которым пользуются многие разработчики.

Прежде всего, самым большим достижением была уверенность в себе: «Я тоже могу!'.

Вы сейчас колеблетесь, чтобы внести вклад в open source?

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

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

Хотя это также ценная возможность добавить одну строку в резюме, вклад в open source на основе обучения также может быть средством доказать, что я действительно усердно учился.

Комментарии к этой публикации недоступны.

29.11.2024 Поздние новости: платная подписка на Replit / Хорошие привычки в разработке ПОВ записи блога от 29 ноября 2024 года мы делимся опытом использования платной подписки на Replit и представляем 10 хороших привычек в разработке программного обеспечения. Обсуждаются стратегии эффективного кодирования и рефакторинга, а также важность тес
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 29, 2024

[Не из IT, но разработчик] 16. Полезные советы по составлению портфолио для начинающих разработчиковМы поделимся советами по составлению портфолио для начинающих разработчиков. Важно подробно описать опыт работы над проектами и свои навыки разработки, а также четко указать, какие сервисы были разработаны.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

[Для неспециалистов, выживание разработчика] 13. Техническое собеседование для начинающих разработчиковРуководство по подготовке к техническому собеседованию для начинающих разработчиков без профильного образования, в котором рассматриваются основные типы вопросов по ООП, базам данных, сетям и стратегии ответа.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 1, 2024

Записи о проблемах, возникших при разработке API Korea Investment & SecuritiesСтатья, в которой описаны проблемы, с которыми я столкнулся во время разработки программы автоматической торговли с использованием API Korea Investment & Securities. В ней честно описываются трудности, связанные с использованием WebSockets, настройкой мет
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

April 23, 2024

[Для неспециалистов, как стать разработчиком] 17. Портфолио начинающего разработчика: до каких пор?Портфолио начинающего разработчика лучше всего структурировать, сосредоточившись на реализации базовых функций CRUD и опыте взаимодействия с внешними API.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024