Wkład open source jest obecnie jedną z najbardziej poszukiwanych umiejętności w branży technologicznej. Ludzie zdali sobie sprawę z korzyści płynących z korzystania z technologii open source i korzyści płynących z bycia częścią tych projektów.
Rozwój open source to podejście oparte na udostępnianiu kodu źródłowego i wspólnym doskonaleniu.
W Internecie są tysiące projektów open-source. Projektami typu open source mogą być aplikacje społecznościowe, oprogramowanie do zarządzania projektami i dokumentacja techniczna. Jak więc wybrać ten właściwy?
Czego szukać w projekcie Open Source
Jednym z błędnych przekonań na temat projektów open source jest to, że musisz wnosić kod. Chociaż kod jest niezbędny, inne obszary, takie jak dokumentacja, zarządzanie projektami i rzecznictwo społeczności, mogą być znaczące wkłady open source.
Każdy, kto pracował nad projektami open source, powie ci o sile takich projektów. Korzyści obejmują innowacje, podnoszenie kwalifikacji i produktywne relacje, które mają wpływ na Twoją karierę.
Rozważ następujące cechy, aby określić, czy oprogramowanie typu open source jest warte twojego czasu.
1. Czy ma licencję?
Każdy projekt typu open source ma licencję, zazwyczaj jest to licencja permisywna lub licencja typu copyleft. Licencja zezwalająca jest powszechna w projektach open source. Nie ogranicza nikogo w używaniu, dystrybucji ani sprzedaży zmodyfikowanej wersji oprogramowania.
Większość projektów open source ma licencje zezwalające, takie jak MIT, BSD lub Apache 2.0. Licencja MIT umożliwia bezpłatne udostępnianie i dystrybucję oprogramowania oraz nie obejmuje gwarancji:
Licencje typu copyleft, takie jak General Public License, Mozilla Public License i Affero General Public License, mają dalsze ograniczenia.
Licencja zezwalająca umożliwia współautorom zmianę i dystrybucję oprogramowania typu open source. Oznacza to, że programiści mogą modyfikować kod źródłowy, aby tworzyć nowe oprogramowanie i używać go lub rozpowszechniać bez ograniczeń. Zmodyfikowana wersja będzie podlegać tej samej licencji co oryginalne oprogramowanie.
Jednak zmodyfikowane wersje nie będą miały takiej samej nazwy jak wersja oryginalna, aby ułatwić ich identyfikację. Licencja powinna również obejmować wszystkie osoby i nikogo nie dyskryminować.
Każdy, kto otrzymuje redystrybuowane oprogramowanie, powinien mieć takie same prawa w licencji, jak pierwotni właściciele kodu.
Bezpłatna licencja nie ogranicza oprogramowania do określonego kanału dystrybucji lub technologii. Oprogramowanie i zależności dystrybuowane wraz z oprogramowaniem open source niekoniecznie muszą być open source. Technologie o zamkniętym kodzie źródłowym i inne płatne technologie wykorzystują oprogramowanie o otwartym kodzie źródłowym bez ograniczeń.
2. Czy kod źródłowy jest udostępniany?
Wszystkie projekty open-source posiadają licencję, która pozwala na bezpłatne udostępnianie kodu źródłowego. Prawa obejmują również kod skompilowany z wkładów. Projekt powinien udostępniać swój kod źródłowy wszystkim stronom bez ograniczeń.
Gdy kod źródłowy jest niedostępny na platformach publicznych, powinien być dostępny na żądanie. Każdy projekt, który nie udostępnia swojego kodu źródłowego, nie jest projektem typu open source.
Ale licencja może ograniczać redystrybucję kodu źródłowego i zezwalać tylko na redystrybucję jego zmodyfikowanej postaci. Zmodyfikowany kod może mieć inną nazwę lub wersję, aby odróżnić go od oryginalnego projektu.
3. Czy projekt zawiera wytyczne dla współtwórców?
Każdy projekt open source powinien mieć przewodnik dla współtwórców. Prawdopodobnie znajdziesz go w folderze głównym projektu, często o nazwie CONTRIBUTORS lub CONTRIBUTORS.md. Przewodnik dla współtwórców zawiera proste instrukcje, jak przyczynić się do projektu.
Przewodnik pokazuje nowym współautorom, jak rozwidlać, zgłaszać problem i przesyłać swój wkład do repozytorium nadrzędnego. Przewodniki dla współtwórców pomagają pokazać współpracownikom, jak działa projekt, aby zmniejszyć konflikty między oddziałami podczas łączenia.
Oto przykład wytycznych dla współtwórców z projektu open source AsyncAPI w sprawie GitHub:
4. Czy ma aktywną społeczność?
Innowacyjność jest jednym z powodów, dla których projekty open-source stały się tak popularne. Otwarte oprogramowanie łączy utalentowane i entuzjastyczne społeczności w celu generowania pomysłów promujących innowacje.
Silna społeczność zapewnia przejrzystą komunikację, współpracę i marketing produktu. Aktywne społeczności open source dają lepsze wyniki i skalują innowacje szybciej niż pojedyncze projekty.
Aby określić, czy społeczność jest aktywna, spójrz na jej kanały społecznościowe. Zacznij od monitorowania ich działań w mediach społecznościowych, kontach Discord lub Slack. Lepsza jest praca w aktywnej społeczności ze swobodnym przepływem informacji i zasobów.
Aktywne społeczności w środowisku open source przyspieszają innowacje na trzy sposoby. Społeczności reagują na aktualne trendy technologiczne, mają częste cykle wydawnicze i prowadzą rozległą redystrybucję oprogramowania.
Przykładem projektu open source z fantastyczną społecznością jest framework JavaScript Facebooka, React.
React urósł do wersji 18 w ciągu dziewięciu lat, podczas gdy podobny framework Vue.js wciąż jest w wersji 3. Oba frameworki mają mniej niż dziesięć lat. Tętniąca życiem społeczność React przyćmiewa inne popularne frameworki JavaScript, takie jak Angular.
Praca nad projektami typu open source z aktywnymi społecznościami to przyjemność. Ponadto nigdy nie będziesz w tyle za trendami i aktualizacjami technologicznymi. Znalezienie najlepsze społeczności technologiczne Discord jest doskonałym dodatkiem do twojego portfolio open source.
5. Czy opiekunowie są aktywni i uważni?
W projekcie typu open source opiekunowie są współtwórcami z uprawnieniami do modyfikowania plików w repozytorium projektu. Opiekunowie są odpowiedzialni za projekt i zapewniają, że wkłady wnoszone do projektu są zgodne z jego celami.
W dobrym projekcie typu open source opiekunowie są najbardziej aktywni. Będą odpowiadać za kanały społecznościowe, prowadzić dyskusje i odpowiadać na pytania autorów. Opiekunowie udostępniają aktualizacje i zachęcają do współpracy w społeczności.
Aby ustalić, czy projekt ma aktywnych opiekunów, spójrz na jego zdalne repozytoria, takie jak GitHub. Aktywni opiekunowie dobrze się komunikują. Odpowiadają na żądania ściągnięcia, konfigurują problemy i odpowiadają na pytania współpracowników.
Zidentyfikuj aktywnych opiekunów, sprawdzając, jak często odpowiadają na zapytania zamieszczane w kanałach społecznościowych. Żadne repozytorium z trzymiesięczną luką komunikacyjną nie jest odpowiednim projektem.
Cechy dobrego projektu Open Source
Chociaż wiele innych cech definiuje odpowiedni projekt open source, ważnymi z nich są typ licencji, charakter społeczności, kod źródłowy i aktywni opiekunowie.
Projekty open source o powyższych cechach inspirują innowacje, skalowanie i marketing światowej klasy projektów. Ponadto wspaniałe społeczności open source nadążają za trendami technologicznymi i zachęcają do współpracy i różnorodności.
Możliwe, że korzystałeś w swoim życiu z co najmniej jednego produktu z otwartym oprogramowaniem. Dlaczego nie zacząć od tego? Skorzystaj z cech wymienionych w tym artykule, aby uzyskać najlepszy projekt, który uzupełnia Twoje umiejętności i potrzeby.