seungwon

Doświadczenie w wkładach do Open Source

  • Język oryginalny: Koreański
  • Kraj: Korea Południowacountry-flag
  • TO

Utworzono: 2025-05-03

Zaktualizowano: 2025-05-27

Utworzono: 2025-05-03 00:00

Zaktualizowano: 2025-05-27 09:42

Ten artykuł ma na celu dodanie odwagi tym, którzy są zainteresowani oprogramowaniem open source, ale mieli obawy typu 'Czy ja dam radę?', 'Od czego powinienem zacząć?'.

Dzisiaj chcę podzielić się swoimi doświadczeniami, jak odważyłem się wejść do świata oprogramowania open source i czego się nauczyłem oraz doświadczyłem w trakcie tego procesu.

Oprogramowanie open source?

Podczas studiów nad programowaniem często spotykamy się z terminem 'oprogramowanie open source'. Przeglądając GitHub, widzimy mnóstwo projektów, które napędzają świat z otwartym kodem.

Projekty, które udostępniają swój kod publicznie, nazywane są 'oprogramowaniem open source'.
Na przykład, duże projekty open source to OpenJDK, Spring Framework, Redis i React.

Wkład w open source

Dotychczas wziąłem udział w czterech projektach open source. Zamiast dodawania funkcji, które wstrząsnęłyby światem, przyczyniam się do małych, drobnych ulepszeń w oprogramowaniu open source.

Nie znam stylu kodu tych projektów i nie wiem dokładnie, jak działają.

Można zauważyć, że można przyczyniać się do społeczności nawet bez pełnego zrozumienia kodu. Mam zaledwie 2 lata doświadczenia w programowaniu i nie czuję, żebym miał do tego talent.

Po prostu czerpię radość z wkładu w open source i komunikacji ze społecznością deweloperów, dlatego kontynuuję tę aktywność.

Dlaczego chciałem wnieść swój wkład w open source?

Szczerze mówiąc, na początku miałem też myśl: 'Czy nie byłoby miło dodać wiersz do CV?' Ta myśl była dość silna. Ale miałem też większą motywację. Była to chęć 'uczenia się głębiej' i potrzeba 'rozwiązywania problemów, których doświadczyłem'.

Podczas projektu zespołowego miałem okazję głęboko przestudiować Spring WebFlux i jego podstawową technologię, Project Reactor. Rozumiałem koncepcję z książek i dokumentów, ale w rzeczywistych, złożonych systemach, jak to działa i jak jest zoptymalizowane, było obszarem, który mogłem zrozumieć tylko patrząc na kod i próbując. Często zastanawiałem się również 'Jak udowodnić, że naprawdę uczyłem się Reactor?' i miałem w głowie myśl 'Muszę wnieść swój wkład w open source!'.

Kiedy już zdecydowałem się 'chcę wnieść swój wkład!', byłem zdezorientowany, od czego zacząć. Odnalezienie części, którą mam poprawić w rozległym kodzie, po przewidywanie, jaki wpływ będą miały moje zmiany na cały system, wszystko mnie przerażało.

Myślałem dużo: 'Co jeśli prześlę PR i dostanę negatywne komentarze?' i zajęło mi dużo czasu, zanim w końcu zarejestrowałem PR.

Reactive Command w Lettuce, kliencie Redis Java, którego używałem w Reactive Stack, był oparty na Reactor, i pomyślałem, że chcę spróbować ulepszyć łańcuch Reactor, bezpośrednio modyfikując go w oparciu o naukę Reactor.

Po prostu zrobiłem fork i przejrzałem cały kod zawierający dopasowania do ciągów 'Reactive' i 'reactor'. Sprawdziłem cały kod, w którym łańcuch został zbudowany z Publisherów Reactor, takich jak Mono i Flux.

Przeglądając dokładnie kod, miałem szczęście znaleźć kod, który używał łańcucha Reactor, w którym czytelność była nieco słaba, a łączenie metod nie było zrobione poprawnie. Choć nie była to duża poprawka funkcjonalności ani zmiana architektury, była to mały i jasny problem, który mogłem zrozumieć i poprawić. Pomyślałem: 'Och, w tym przypadku też mogę wnieść swój wkład!'.

Zmieniłem kod ostrożnie w oparciu o to, co rozumiem i sprawdziłem, czy działa zgodnie z zamierzeniami w środowisku lokalnym. Choć była to mała zmiana, starałem się jak najlepiej przestrzegać stylu istniejącego kodu i, zastanawiając się kilka razy, czy nie wpłynie to na inne części, podszedłem do tego ostrożnie.

Kiedy zapisałem zmienioną treść i wreszcie nadszedł czas, aby wysłać PR. Szczerze mówiąc, bardzo się wahałem i miałem wiele wątpliwości, zanim nacisnąłem przycisk 'Wyślij'. Martwiłem się, 'Czy to wystarczy, aby wysłać PR z tą zmianą?', 'Czy ktoś powie, że naprawiłem coś oczywistego?', 'Czy potrafię dobrze to wytłumaczyć po angielsku?'.

Jak powiedziałem wcześniej, obawiałem się, co jeśli przez moje braki dostanę negatywne komentarze. Ale myśląc: 'Początek to połowa pracy' i 'Nie nauczysz się niczego, jeśli nie spróbujesz', odważyłem się przesłać PR, w którym opisałem moje zmiany i ich powody tak szczegółowo, jak to możliwe.

Doświadczenie w wkładach do Open Source

redis/lettuce - #3061

W końcu mój PR został 'Scalony' i poczułem naprawdę wielkie poczucie spełnienia i dumy z faktu, że kod, który napisałem i zmodyfikowałem, stał się częścią znanego projektu open source, z którego korzysta wielu deweloperów.

Przede wszystkim, to ja mogę to zrobić! zdobycie pewności siebie było największym osiągnięciem.

Czy wahasz się, czy wnieść swój wkład w open source?

Nie musisz tego w pełni rozumieć. Możesz zacząć od małych rzeczy, jak ja. Istnieje wiele sposobów na wniesienie wkładu, takich jak poprawki błędów w dokumentacji, uczestnictwo w tłumaczeniach, proste zgłaszanie błędów itp. Ważne jest odwaga, by przezwyciężyć strach i postawić pierwszy krok.

Jeśli popełnisz błąd, jest to również szansa na dalszy rozwój poprzez otrzymywanie opinii od społeczności.

To cenna okazja do dodania wiersza do CV, ale wkład w open source oparty na uczeniu się może również stać się sposobem na udowodnienie, że naprawdę ciężko się uczyłeś.

Komentarze są wyłączone dla tego wpisu.