Spis treści:
- Anton Zhiyanov
- Najpopularniejsze biblioteki są open source
- O najlepszym projekcie na GitHubie
- Na jakiej licencji projekty powinny być hostowane na GitHubie
- Ile wysiłku i czasu wymaga utrzymanie projektów open source
- Co jest nie tak z Open Source i dlaczego korporacje z nim flirtują
- Jak zostać opiekunem i gdzie zacząć przyczyniać się do Open Source

Bezpłatny kurs: „Szybki start w Pythonie”
Dowiedz się więcejAnton Zhiyanov

O ekspercie
Ekspert posiada dogłębną wiedzę i doświadczenie w swojej dziedzinie, co pozwala mu na udzielanie cennych rekomendacji i rozwiązań. Jego kwalifikacje oparte są na wieloletniej praktyce i ciągłym doskonaleniu zawodowym, co czyni go wiarygodnym źródłem informacji. Ekspert aktywnie dzieli się swoją wiedzą poprzez publikacje, seminaria i konsultacje, pomagając innym w osiąganiu sukcesów. Jego podejście koncentruje się na indywidualnych potrzebach klientów, co gwarantuje wysoki poziom satysfakcji i zaufania. Dzięki analitycznemu myśleniu i umiejętności holistycznej oceny sytuacji, ten ekspert potrafi znaleźć optymalne rozwiązania złożonych problemów.
Jest liderem technicznym w DaData na Twitterze, @nalgeon. Aktywnie używa Pythona i SQL, dzieląc się swoją wiedzą i doświadczeniem w swoich publikacjach. Na Twitterze omawia różne aspekty programowania i rozwoju, tworząc projekty open source i prowadząc szkolenia. Pisze również dla platformy Habr i prowadzi własną stronę internetową, na której publikuje przydatne materiały. Wśród jego bibliotek open source wyróżniają się iuliia-py i sqlean, które zyskały uznanie w społeczności programistów.
Linki odgrywają kluczową rolę w strukturze stron internetowych i ich optymalizacji SEO. Zapewniają nawigację między stronami, pomagając użytkownikom znaleźć potrzebne informacje. Ponadto wysokiej jakości linki zewnętrzne i wewnętrzne pomagają zwiększyć autorytet witryny w oczach wyszukiwarek. Ważne jest, aby poprawnie używać tekstu zakotwiczającego, tak aby pasował do treści stron docelowych. Ważne jest również monitorowanie jakości linków i unikanie linków do niewiarygodnych źródeł, ponieważ może to negatywnie wpłynąć na pozycję witryny w wynikach wyszukiwania. Optymalizacja linków to kluczowy aspekt każdej strategii poprawy widoczności witryny w wyszukiwarkach.
Pracuję w DaData, usłudze w chmurze, która umożliwia firmom pozyskiwanie informacji o klientach za pomocą danych takich jak numer identyfikacji podatkowej (NIP) lub adres. Nasze usługi cieszą się szczególną popularnością wśród sklepów internetowych, ponieważ pozwalają im zminimalizować ilość danych wymaganych od klientów. Klienci muszą jedynie podać adres dostawy, a sklep otrzymuje niezbędne współrzędne, informacje o dzielnicy miasta i najbliższej stacji metra. Jest to szczególnie wygodne w przypadku interakcji z podmiotami prawnymi, ponieważ zamiast 20 pól z danymi, klient musi podać jedynie nazwę firmy lub NIP. DaData zapewnia prostotę i wydajność, co przyczynia się do poprawy doświadczenia użytkownika i zwiększenia konwersji w firmach.
W swojej pracy zawodowej aktywnie korzystam z bibliotek open source, w tym z moich własnych opracowań. Moje konto GitHub istnieje od wielu lat i zawiera kilka projektów, w tym jeden z ponad 1000 gwiazdkami. W tym artykule podzielę się swoimi doświadczeniami z pracy z projektami open source i podkreślę główne wyzwania, z jakimi mierzą się programiści w społeczności open source.
Najpopularniejsze biblioteki to open source
Open source to obecnie główny sposób dystrybucji bibliotek. Biblioteki komercyjne są zazwyczaj znacznie mniej liczne i znajdują się głównie w wysoce wyspecjalizowanych obszarach. Open source oferuje programistom dostęp do szerokiej gamy narzędzi i zasobów, co sprzyja innowacjom i współpracy w społeczności. To sprawia, że Open Source jest preferowanym wyborem dla wielu projektów, zapewniając elastyczność i możliwość personalizacji.
Tworzenie biblioteki open source ma swoje zalety. Z jednej strony, inni programiści mogą wnosić swój wkład, znajdować i naprawiać błędy, co pomaga w poprawie jakości produktu. Z drugiej strony, istnieje poczucie, że robisz coś dobrego dla społeczności, pozwalając użytkownikom dostosować bibliotekę do swoich potrzeb, zamiast być ograniczonym przez pierwotny zamysł autora. Uważam jednak, że nie całe oprogramowanie powinno być open source. Open source to skuteczny sposób dystrybucji bibliotek i niektórych innych rozwiązań programowych, ale nie jest to rozwiązanie uniwersalne dla każdego oprogramowania.
W zeszłym roku stworzyłem swój pierwszy duży projekt na GitHubie związany z transliteracją. Transliteracja to proces zapisywania rosyjskich słów za pomocą alfabetu łacińskiego, podobnie jak imiona i nazwiska zapisywane są w paszportach. Na przykład, jeśli chcesz wysłać list ze Stanów Zjednoczonych, adres będzie zapisany literami łacińskimi, a nie cyrylicą. Mój projekt na GitHubie oferuje wygodne narzędzie do tego zadania, upraszczając proces użytkownikom, którzy muszą pracować z rosyjskimi tekstami za granicą.
Transliteracja to złożone zadanie, ponieważ istnieje 20 różnych standardów, z których większość nie uwzględnia specyfiki cyrylicy. Jeśli Twoje imię i nazwisko są proste, masz szczęście – zostaną poprawnie przetransliterowane w paszporcie. Jeśli jednak Twoje imię zawiera litery „e”, „yo”, „yu”, „ya” lub dźwięk „y”, może to sprawiać trudności. Imię Yulia jest uważane za jedno z najtrudniejszych do transliteracji.
Opracowałem bibliotekę transliteracji słów, która obsługuje 15 różnych schematów. Biblioteka nosi nazwę iuliia, od popularnej nazwy. Jest dostępna nie tylko dla Pythona, ale także dla JavaScriptu. Stworzyłem również stronę internetową ze szczegółowym opisem biblioteki i przykładami demonstracyjnymi. Wszystkie schematy transliteracji są kompilowane w formacie JSON, co ułatwia adaptację biblioteki do użytku w innych językach, takich jak Java.
Wersja JavaScript biblioteki iuliia została pobrana zaledwie 111 razy w ciągu ostatniego tygodnia. Wynika to z faktu, że transliteracja nie jest powszechnie poszukiwanym zadaniem programistycznym. Użytkownicy zgłaszali błędy kilkakrotnie, ale nie otrzymano żadnych żądań ściągnięcia. Nie jest to zaskakujące, ponieważ transliteracja jest trudna do wdrożenia.
Później opublikowałem artykuł na Habr, szczegółowo opisując złożone wyzwania, z jakimi borykał się cyrylica w XX wieku, oraz wpływ transliteracji na jej rozwój. Czytelnicy aktywnie wyrażali swoje doświadczenia w komentarzach, dzieląc się osobistymi trudnościami związanymi z pisownią pełnych imion i nazwisk. Ten artykuł przyciągnął uwagę wielu programistów, którzy stworzyli ponad 10 różnych rozwiązań transliteracyjnych w różnych językach programowania.
O projekcie z największą liczbą gwiazdek na GitHubie
Mam projekt o nazwie sqlean, który otrzymał 1000 gwiazdek na GitHubie — więcej niż suma gwiazdek wszystkich moich pozostałych projektów razem wziętych. Zanim zagłębię się w szczegóły tego projektu, pozwólcie mi na małą dygresję.
Język SQL zajmuje ważne miejsce w analizie danych, zapewniając wygodne i efektywne narzędzie do pracy z informacjami. Przewyższa funkcjonalnością Excela, pozostając jednocześnie bardziej przystępnym w porównaniu z Pythonem. SQL to język deklaratywny, który pozwala użytkownikom skupić się na rezultatach, które chcą uzyskać, a nie na tym, jak dokładnie system zarządzania bazą danych powinien wykonywać zapytania. Dzięki temu SQL jest idealnym wyborem dla analityków i naukowców zajmujących się danymi, którzy poszukują szybkiego i dokładnego wyszukiwania danych.
SQL i jego konstrukcje pozostają aktualne i sprawdzone w czasie. Język zmienia się rzadziej, a nowe konstrukcje nie zastępują starych, jak to się dzieje w programowaniu front-end. Wiele zadań, które programiści rozwiązują za pomocą Pandas, jest wykonywanych znacznie szybciej i łatwiej w czystym SQL. SQL oferuje potężne narzędzia do pracy z danymi, co czyni go niezbędnym w analityce i programowaniu baz danych. Biorąc pod uwagę stabilność i wydajność SQL, pozostaje on preferowanym wyborem w przypadku różnorodnych zadań przetwarzania danych.
Spośród relacyjnych systemów zarządzania bazami danych (RDBMS) szczególnie preferuję SQLite. Ta kompaktowa baza danych jest łatwa do osadzenia w kodzie, co czyni ją idealną do analizy danych i wykorzystania jako nośnik danych w małych aplikacjach. Dlatego piszę artykuły o SQLite i aktywnie działam na rzecz popularyzacji jego wykorzystania.
SQLite ma ograniczone funkcje do pracy z tekstem, liczbami i statystykami matematycznymi. Chociaż programiści z czasem dodają nowe funkcje, ich liczba pozostaje niewystarczająca w porównaniu z PostgreSQL. Może to stanowić ograniczenie dla użytkowników wymagających bardziej złożonych operacji i funkcji analitycznych. Dlatego wybierając między SQLite a PostgreSQL, warto wziąć pod uwagę funkcjonalność i potrzeby skalowalności projektu.
Zewnętrzni programiści tworzą rozszerzenia, aby dodać brakujące funkcje, takie jak praca z wyrażeniami regularnymi. Wyrażenia regularne umożliwiają wyszukiwanie i zamianę tekstu nie tylko w celu znalezienia dokładnych dopasowań, ale także w przypadku złożonych wzorców. Narzędzia te są dostępne we wszystkich popularnych systemach zarządzania bazami danych z wyjątkiem SQLite. Aby zintegrować wyrażenia regularne z SQLite, należy znaleźć odpowiednie rozszerzenie, skompilować je i poprawnie połączyć z bazą danych.
Dla większości użytkowników proces kompilacji pozostaje złożonym zadaniem. Wiele osób zgłasza się na forum pomocy technicznej SQLite z pytaniami o to, jak dodać konkretną funkcję, i otrzymuje monit o pobranie i skompilowanie rozszerzenia w języku C. Zdezorientowani użytkownicy pytają: „Co to jest kompilacja?” i otrzymują link do dokumentacji. Prawdopodobnie tylko nielicznym udaje się pomyślnie skompilować.

Rozszerzenia SQLite są często rozproszone po całym GitHubie bez Przejrzysta struktura i logika. Uporządkowałem je, stosując podejście oparte na rozwiązywaniu problemów, i stworzyłem dokumentację, dzięki czemu użytkownicy mogli szybko i łatwo pobrać niezbędne pakiety dla systemów Windows, Mac, iOS i Linux. Użytkownicy czasami proponują nowe funkcje, a jeden z moich współpracowników opracował moduł do pracy z adresami IP. Nie skopiował on po prostu istniejącego kodu, ale stworzył go od podstaw, co podkreśla jakość i unikalność jego pracy.
Moja praca zyskała popularność, ponieważ użytkownicy wolą unikać zawiłości związanych z kompilacją. Chociaż możliwe jest zapoznanie się z dokumentacją i zrozumienie procesu, większość osób nie chce zagłębiać się w te techniczne szczegóły. W rzeczywistości jest to dość proste i staram się, aby ten proces był bardziej dostępny dla wszystkich.
Później opublikowałem artykuł o bibliotece na Hacker News. Znalazł się on na szczycie strony głównej i stał się najpopularniejszym artykułem o SQLite w historii platformy. Hacker News jest podobny do Habr, ale skierowany do odbiorców anglojęzycznych, oferując linki do artykułów zamiast pełnego tekstu. Ten zasób jest niezwykle popularny, regularnie prowadzi aktywne dyskusje i jest czytany na całym świecie.
Jakiej licencji powinienem używać do hostowania projektów na GitHubie?
W przypadku projektów na GitHubie wolę korzystać z licencji MIT, ponieważ jest prosta i przejrzysta. Licencja ta wymaga od użytkowników podania autorów i nieukrywania ich nazwisk. Jednocześnie licencja MIT ma szeroki zakres: kod można modyfikować i wykorzystywać komercyjnie. To sprawia, że jest idealnym wyborem dla programistów, którzy chcą udostępnić swoje oprogramowanie, zachowując jednocześnie prawa autorskie.
W przeciwieństwie do tradycyjnych licencji, licencje open source wymagają, aby całe oprogramowanie pochodne pozostało open source. Ten model licencjonowania jest niepraktyczny w przypadku bibliotek. Na przykład, jeśli rozwijasz duży system i używasz małej biblioteki na licencji GPL, może to wymagać ujawnienia całego kodu źródłowego Twojego projektu. Takie podejście ogranicza możliwości programistów i sprawia, że korzystanie z bibliotek z licencjami open source jest mniej atrakcyjne dla projektów komercyjnych.
Patrzę na licencje i open source z praktycznego punktu widzenia, więc debata między FSF a OSI mnie nie interesuje. Czasami potrzebne jest również oprogramowanie własnościowe. Dlatego programiści przyjęli koncepcje Open Core i opóźnionej publikacji, gdzie oprogramowanie jest początkowo wydawane w wersji własnościowej, a następnie stopniowo staje się open source. Te podejścia mają swoje miejsce w pewnych sytuacjach i nie można kategoryzować licencji jako dobrych lub złych. Jeśli jednak przedstawisz Richardowi Stallmanowi projekt wykorzystujący Open Core, prawdopodobnie nie będzie w stanie oprzeć się negatywnej reakcji.
Ile wysiłku i czasu poświęca się na utrzymanie projektów open source
Wkładam minimalny wysiłek w utrzymanie moich projektów, ponieważ rozwijam je bez zewnętrznych zależności. Funkcjonalność moich programów zależy całkowicie od standardowej biblioteki, która jest bardzo stabilna. Dzięki temu nie muszę martwić się o częste aktualizacje i nowe luki w zabezpieczeniach związane z bibliotekami innych firm. Takie podejście zapewnia niezawodność i długoterminową stabilność moich rozwiązań, co jest szczególnie ważne we współczesnym programowaniu.
Nie lubię świata JavaScript ze względu na dużą liczbę zewnętrznych zależności. Gdy tylko nowy projekt się rozpocznie, zaczyna się on starzeć w ciągu kilku miesięcy. Zmusza to programistów do ciągłego aktualizowania bibliotek, które często okazują się niekompatybilne ze sobą. Regularne aktualizacje stają się koniecznością, co stwarza dodatkowe wyzwania w utrzymaniu projektu.
W sqlean nacisk kładzie się na dodawanie nowych funkcji, a aktualizacje starszych wersji pojawiają się tylko w przypadku wykrycia błędów. Problemy najczęściej pojawiają się w bardziej złożonych aplikacjach lub tych, które oddziałują z zewnętrznymi interfejsami API. Na przykład, jeśli biblioteka korzysta z usługi w chmurze, musi być aktualizowana za każdym razem, gdy zmienia się API tej usługi. Wymaga to starannego podejścia do wsparcia i aktualizacji, aby zapewnić stabilne działanie aplikacji.
Pracuję nad projektami w krótkich odstępach czasu. Regularne wsparcie wymaga kilku godzin miesięcznie, podczas gdy opracowanie nowego rozszerzenia dla SQLite zajmuje od jednego do kilku dni. Mogę spędzać tygodnie nad nowymi projektami, co pozwala mi głębiej wniknąć w każde zadanie i osiągnąć wysokiej jakości rezultaty.
Statystyki aktywności współpracowników są dostępne w serwisie GitHub, w sekcji Aktywność w zakresie wkładu. Każdy rok jest reprezentowany przez kwadrat: im więcej kodu wniósł programista, tym jaśniejszy i bardziej nasycony jest kolor kwadratu. W moim przypadku, ze względu na nieregularny charakter mojej pracy nad projektami, kolorowe kwadraty przeplatają się z szarymi. Ta wizualizacja pozwala szybko ocenić zaangażowanie i wkład programisty w projekty, co jest ważnym aspektem przy poszukiwaniu możliwości współpracy i ocenie umiejętności zawodowych.
Co jest złego w oprogramowaniu typu open source i dlaczego korporacje się nim bawią
Oprogramowanie typu open source to idealne rozwiązanie dla bibliotek, dlatego większość z nich jest objęta otwartą licencją. Ułatwia to programistom wykrywanie i naprawianie błędów w projektach, a użytkownikom zapewnia szeroki wybór. Dzięki oprogramowaniu typu open source można znaleźć niemal każdą bibliotekę i dostosować ją do konkretnych zadań. Korzystanie z bibliotek typu open source pomaga przyspieszyć rozwój i poprawić jakość oprogramowania.
Model dystrybucji kodu ma dwa poważne problemy, z których oba są związane z kwestiami sprawiedliwego podziału zysków. Problemy te znacząco wpływają na trwałość i skuteczność tego modelu, wymagając starannego rozważenia podczas jego wdrażania.
Wiele bibliotek jest powszechnie używanych, w tym przez takich gigantów jak Google i Facebook. Jednak ich twórcy nie otrzymują odpowiedniego wynagrodzenia za swoją pracę. Kiedy Twoje rozwiązania stanowią podstawę ogromnej ilości oprogramowania korporacyjnego sprzedawanego za miliony dolarów, podczas gdy Ty sam żyjesz w skromnych warunkach i ledwo wiążesz koniec z końcem, wywołuje to poczucie głębokiej niesprawiedliwości. Ważne jest, aby docenić wartość oprogramowania open source i jego wpływ na rozwój technologii, a także potrzebę wspierania programistów, którzy wkładają swój wysiłek w tworzenie użytecznych narzędzi.
Sytuacja w branży tworzenia bibliotek stopniowo się zmienia. Niektórzy autorzy zarabiają już od 5000 do 10 000 dolarów, co stanowi przyzwoitą pensję dla pojedynczego programisty. Jeśli jednak biblioteka jest rozwijana przez zespół, praca dla firmy komercyjnej staje się bardziej opłacalną opcją. Mimo to, takich autorów wciąż jest niewielu. Większość programistów otrzymuje jedynie symboliczne wynagrodzenie lub w ogóle nie otrzymuje dochodów.
Wiele zależy od Twoich oczekiwań. Jeśli planujesz tworzyć biblioteki open source w celach zarobkowych, przygotuj się na potencjalne rozczarowania. Ważne jest, aby zdawać sobie sprawę, że sukces w tej dziedzinie nie zawsze jest powiązany z wynikami finansowymi. Odłóż na bok swoje oczekiwania i podejdź do procesu z otwartym umysłem.
Open source rodzi wiele problemów związanych ze sprawiedliwością społeczną. Firmy takie jak Google mogą oferować wyższe wynagrodzenie autorom popularnych bibliotek, z których korzystają. Tworzy to nierówność między programistami, którzy wnoszą znaczący wkład w projekty open source, a dużymi korporacjami czerpiącymi zyski z tych technologii. Ważne jest, aby omówić i znaleźć rozwiązania zapewniające sprawiedliwe wynagrodzenie programistom w społeczności open source, aby zapewnić zrównoważony rozwój i wsparcie dla innowacji.
Popularne programy, takie jak PostgreSQL i Sentry, były pierwotnie dystrybuowane na podstawie liberalnych licencji open source. Pozwala to korporacjom oferować produkty open source jako usługi w chmurze. W rezultacie Amazon znacznie zwiększa swoje przychody, a niezależni programiści tracą użytkowników. Wielu klientów preferuje duże, zaufane firmy, takie jak Amazon, które mogą oferować lepsze warunki niż mniejsze firmy.
Niektóre firmy migrują do modelu Open Core, podczas gdy inne decydują się na nowe licencje, jak niedawno zrobił Elastic. Elasticsearch to jedno z najlepszych narzędzi do wyszukiwania różnych typów danych. W wyniku wycofania się firmy Elastic z licencji, usługom chmurowym zakazano odsprzedaży Elasticsearch. Spowodowało to negatywną reakcję, a Amazon rozwidlił najnowszą wersję programu open source, obiecując dalszy rozwój. Amazon dysponuje znacznie większymi zasobami niż niezależni deweloperzy, co stawia Elasticsearch w trudnej sytuacji i może zagrozić jego działalności.

Twórcy również napotkali podobny problem. MongoDB wyraźnie zaznaczyło w swojej licencji, że ich oprogramowanie nie może być swobodnie odsprzedawane w usługach chmurowych. W rezultacie Amazon był zmuszony negocjować płatności z firmą, aby zapewnić możliwość świadczenia tej usługi swoim użytkownikom.
Współpraca między korporacjami a oprogramowaniem open source często przynosi obustronne korzyści. Google inwestuje w projekty open source z pragmatycznych powodów: wykorzystuje te programy i biblioteki w swoich usługach i stara się dostosowywać je do swoich potrzeb. Dlatego duże firmy są zainteresowane wpływaniem na rozwój oprogramowania open source. Z kolei autorzy projektów open source otrzymują finansowanie od współpracowników. Ta współpraca opiera się na obopólnych korzyściach, a nie altruizmie.
Jak zostać opiekunem i gdzie zacząć przyczyniać się do rozwoju oprogramowania open source
Według statystyk osiągnięcie 1000 gwiazdek na GitHubie jest bardzo trudnym zadaniem. Aby uniknąć rozczarowania oprogramowaniem open source w przypadku niepowodzenia, ważne jest, aby określić oczekiwania poza procesem. Sukces w tym obszarze wymaga czasu i wysiłku, dlatego najlepiej skupić się na tworzeniu wysokiej jakości treści i aktywnym angażowaniu się w społeczność. Nie szukaj pomysłu. Jeśli masz problem, który można rozwiązać za pomocą kodu, stwórz bibliotekę lub narzędzie. Następnie możesz rozważyć zachowanie projektu dla siebie lub sformalizowanie go, pisząc krótki plik readme i publikując go na GitHubie. Zajmie to trochę czasu, ale stworzysz coś wartościowego dla społeczności, co zwiększy Twój poziom uczestnictwa w Open Source. Nie tylko rozwiążesz swój problem, ale także pomożesz innym programistom, co może prowadzić do nowych możliwości i interakcji. Najłatwiejszym sposobem na rozpoczęcie wkładu w projekty jest korzystanie z bibliotek, których już używasz w swojej pracy. Pozwoli Ci to nie tylko poprawić swoje umiejętności, ale także zapewnić realne wsparcie społeczności. Znasz już funkcjonalność, co ułatwia naukę kodu i zrozumienie, jak wprowadzać zmiany. Zacznij od drobnych poprawek lub dodawania dokumentacji, aby przyzwyczaić się do procesu. Później będziesz mógł zająć się bardziej złożonymi zadaniami i znacząco poprawić swoje umiejętności programistyczne.
Pierwsza metoda: Przejdź do repozytorium GitHub projektu i przejrzyj otwarte zgłoszenia. Jeśli uda Ci się rozwiązać którykolwiek z problemów, prześlij żądanie ściągnięcia (pull request) ze swoją poprawką. Wkład nie ogranicza się jednak tylko do poprawiania błędów lub proponowania nowych funkcji. Możesz również stworzyć dokumentację dla projektu, ponieważ w projektach open source często jej brakuje.
Druga metoda polega na samodzielnym zidentyfikowaniu problemu w projekcie i zgłoszeniu zgłoszenia. Niektórzy opiekunowie docenią Twoją inicjatywę, podczas gdy inni mogą nie być zainteresowani, zwłaszcza jeśli mają już wiele otwartych zgłoszeń. Aby zwiększyć szanse na pozytywną odpowiedź, zaleca się natychmiastowe dołączenie żądania ściągnięcia (pull request) z proponowaną poprawką. To nie tylko ułatwi pracę opiekunom, ale także zwiększy prawdopodobieństwo, że Twój przekaz zostanie usłyszany.
Unikaj przesyłania żądań ściągnięcia zawierających 10 plików z 2000 wierszami zmian. Jeśli po raz pierwszy kontaktujesz się z opiekunem i przedstawiasz dużą ilość kodu, Twoje żądanie ściągnięcia prawdopodobnie zostanie odrzucone. Zamiast tego utwórz zgłoszenie szczegółowo opisujące problem i proponujące rozwiązanie. Prawdopodobnie zostaniesz poproszony o wprowadzenie bardziej lokalnych poprawek zamiast przepisywania całego kodu.
Drobne zmiany można zgłaszać od razu, natomiast duże zmiany zaleca się wcześniej omówić z opiekunem. Pozwoli to zaoszczędzić czas i uniknąć sytuacji, w której Twoja praca zostanie odrzucona, co może być frustrujące. Omówienie większych zmian pomoże Ci lepiej zrozumieć wymagania projektu i zwiększy szanse na zaakceptowanie Twojego żądania ściągnięcia.
Podsumujmy.
- Model Open Source świetnie sprawdza się w licencjonowaniu bibliotek, ale nie każde oprogramowanie musi być otwarte.
- Z reguły licencja MIT lub inna licencja o liberalnym charakterze jest odpowiednia dla projektów open source. Zobowiązuje użytkownika do wskazania lub nieukrywania nazwiska autora programu, ale poza tym zapewnia swobodę działania.
- Problemem Open Source jest niesprawiedliwy podział dochodów z programów. Większość autorów popularnych bibliotek, które napędzają cały internet, otrzymuje grosze za swoją pracę.
- Aby zostać opiekunem, nie musisz specjalnie szukać pomysłu na projekt. Spróbuj napisać program, który rozwiązuje Twój problem – w przyszłości może on przekształcić się w doskonały projekt open source.
- Współpracownicy mogą wnieść swój wkład na dwa sposoby: rozwiązując problem z listy lub znajdując nowy problem i proponując rozwiązanie. Możesz naprawiać błędy, proponować rozwiązania i pisać dokumentację projektu.
Przeczytaj także:
- Jak model FOSS przeniknął do biznesu, nauki, edukacji i kreatywności
- „Normalni programiści nie kodują po rosyjsku”: 4 irytujące mity na temat języka 1C
- Pełzaj jak mrówka, lataj jak pszczoła: algorytmy wymyślone przez samą naturę

