Wkład Open Source 101
Historia ⏮
Jako mentor w ADPList często jestem pytany o mój wkład w open source jako osoba zatwierdzająca Apache i jak zacząć korzystać z Github.
Mianowanie na Apache Committer ( apache/mxnet#19512 ) było jednym z moich największych osiągnięć w świecie kodowania i technologii. Chcę podzielić się wnioskami ze spędzania czasu ze społecznością open source. To skłoniło mnie do bycia mentorem dla początkujących specjalistów od oprogramowania i studentów informatyki/angielski. Ten artykuł jest próbą odpowiedzi na pytanie —
Co bym zrobił dzisiaj w listopadzie 2022 r., gdybym zaczął swoją przygodę z open source?
♀ Co oznacza open source?
Github jest pionierem wszechświata open source, który spopularyzował pojęcie repozytoriów, pull requestów i kontroli wersji. Otwarte oprogramowanie zasadniczo polega na dezokratyzacji dostępu do kodu źródłowego. Chodzi o zburzenie murów zaklejonych umowami o zachowaniu poufności [NDA] oraz restrykcyjnymi prawami autorskimi i znakami towarowymi ™️. Nie oznacza to, że kod open source nie ma licencji ani praw autorskich. Chodzi o zapewnienie swobody publicznego dzielenia się wiedzą i informacjami z bezpieczeństwem prawidłowego cytowania i odwoływania się. W tym sensie open source to świetny niwelator. Ludzie z całego świata mogą swobodnie czytać, komentować, pisać i wyrażać swoje opinieo oprogramowaniu rozwijanym w świecie open source. To właśnie ta wolność wypowiedzi, podstawowe prawo człowieka, zastosowane w świecie oprogramowania i technologii, manifestuje się w formie „open-source”.
♂️Co obejmuje wkład open source?
W porządku, teraz, gdy jesteśmy na tej samej stronie, jeśli chodzi o termin „open source”. Jakie działania są powiązane z wkładami systemu operacyjnego?
Moim zdaniem następujące zestawy działań mieszczą się w ramach składek OS
- Twórz problemy, błędy i zadawaj pytania
- Zgłaszanie próśb o nowe funkcje [poprzez problemy, jira lub oprogramowanie do śledzenia projektów]
- Pomysłuj i składaj propozycje
- Komentuj i bierz udział w dyskusjach
- Odpowiadać na pytania
- Naprawić błędy
- Przejrzyj kod opracowany przez innych członków społeczności
- Dodaj testy, popraw infrastrukturę testowania/CI/CD
- Napisz nowy kod funkcji
- Weź udział w wydarzeniach wirtualnych/osobistych
- Ewangelizuj bibliotekę/produkt/usługę
- Aktywnie komunikuj się na kanałach dyskusji/czacie/listach programistów
- Zagłosuj i weź udział w procesie wydawania [biblioteki/produktu/ramki/usługi]
Jak zacząć?
Podążałbym 1 z następujących 2 tras
- Słynny projekt renomowanych organizacji open source
- Projekty, w których mam najwięcej kontekstu
Wyszukaj znane projekty wspierane przez znane organizacje Open Source
- Podstawy oprogramowania Apache — hadoop, hive, hbase, mxnet, cassandra
- The Document Foundation — pakiet LibreOffice [Open office] .
- GNOME Foundation — słynne środowisko graficzne GNOME
- Linux Foundation — znana z systemu operacyjnego opartego na systemie UNIX
- Fundacja Mozilla — znana z przeglądarki
Łatwym sposobem na wywarcie znaczącego wpływu na społeczność programistów jest posiadanie już wbudowanego mentalnego modelu bazowego produktu/ram/usługi. Skierowałbym moją energię na wniesienie wspomnianego wyżej wkładu open source, wykorzystując wiedzę i kontekst, który zbudowałem do tej pory jako programista.
Może to oznaczać różne projekty dla różnych programistów, oczywiście w oparciu o stos oprogramowania, do którego są najbardziej przyzwyczajeni.
Wymienię popularne projekty open source oparte na językach:
10 najlepszych projektów Javascript według Technical Geek
- Reaguj przez Facebook/Meta
- Tensorflow.js autorstwa TF [oryginalnie stworzony przez Google]
- Node.js
- Angular.js
- jQuery
- Menedżer pakietów węzłów [npm]
- Vue.js
- Ember.js
- Meteor.js
- Polimer
- Tensorflow — uczenie głębokie
- matplotlib — wizualizacja danych
- Flask — twórca stron internetowych
- Django autorstwa Django Software Foundation
- PyTorch — pierwotnie przez Facebook/Meta
- MXNet przez Apache Software Foundation
- Ansible — narzędzie do wdrażania, operacji i orkiestracji
- Żądania — biblioteka HTTP firmy Python Software Foundation
- Scikit-learn — ML w Pythonie
- Pandy — nauka o danych/analiza danych
- OpenJDK
- RXJava
- Apache Pinot — magazyn danych OLAP
- Hazelcast — rozproszona platforma obliczeniowa i pamięci masowej
- Format Google Java — styl Google Java
- jOOQ — SQL dla Javy
- Wiosenny but
- Glide — buforowanie i generowanie obrazów dla systemu Android
- Guava — podstawowe biblioteki Java firmy Google
- mockito — mock, framework testowy
- wyszukaj w Google ze słowami kluczowymi „10 najlepszych projektów open source” i „język”
- Szukaj na Githubie —https://github.com/search?q=java+language%3AJava&type=repositories&l=Java

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































