Contributo Open Source 101
Retroscena ⏮
In qualità di mentore presso ADPList , mi viene spesso chiesto dei miei contributi open source come committer di Apache e di come iniziare con Github.
Essere nominato Apache Committer ( apache/mxnet#19512 ) è stato uno dei miei più grandi successi nel mondo della programmazione e della tecnologia. Desidero condividere quanto appreso dal trascorrere del tempo con la comunità open source. Questo mi ha spinto a fare da mentore a professionisti del software all'inizio della carriera e studenti universitari di informatica / inglese. Questo articolo è un tentativo di rispondere alla domanda:
Cosa farei oggi nel novembre 2022 se dovessi iniziare il mio viaggio nell'open source?
♀ Cosa significa open-source?
Github è il poster dell'universo open source, avendo reso popolare la nozione di repository, richieste pull e controllo della versione. L'open source riguarda essenzialmente la dezocratizzazione dell'accesso al codice sorgente. Si tratta di abbattere i muri incollati con accordi di non divulgazione [NDA] e diritti d'autore e marchi restrittivi ™️. Ciò non implica che il codice open source non abbia licenze o diritti d'autore. Si tratta di fornire la libertà di condividere la conoscenza e le informazioni pubblicamente con la sicurezza di una corretta citazione e riferimento. L'open source è un grande livellatore, in questo senso. Persone provenienti da tutto il mondo possono leggere, commentare, scrivere ed esprimersi liberamentesul software in fase di sviluppo nel mondo open-source. È questa libertà di espressione, il diritto umano fondamentale, quando applicato al mondo del software e della tecnologia, si manifesta sotto forma di “open-source”.
♂️Cosa comporta il contributo open-source?
Va bene, ora che siamo sulla stessa pagina per quanto riguarda il termine "open-source". Quali attività sono associate ai contributi del sistema operativo?
A mio parere, le seguenti serie di azioni rientrano nell'ambito dei contributi del sistema operativo
- Crea problemi, bug e fai domande
- Aumentare le richieste di funzionalità [tramite problemi, jira o software di monitoraggio del progetto]
- Ideare e fare proposte
- Commenta e partecipa alle discussioni
- Rispondere alle domande
- Correggi bug
- Esamina il codice sviluppato da altri membri della comunità
- Aggiungi test, migliora l'infrastruttura di test/CI/CD
- Scrivi il nuovo codice funzione
- Partecipa a eventi virtuali/di persona
- Evangelizzare la biblioteca/prodotto/servizio
- Comunicare attivamente nei canali di discussione/chat/liste di sviluppo
- Vota e partecipa al processo di rilascio [di libreria/prodotto/framework/servizio]
Come dovrei iniziare?
Perseguirei 1 dei seguenti 2 percorsi
- Famoso progetto di rinomate organizzazioni open source
- Progetti su cui ho più contesto
Cerca progetti familiari supportati da famose organizzazioni open source
- Apache Software Foundations — hadoop, hive, hbase, mxnet, cassandra
- The Document Foundation — Suite LibreOffice [Open office].
- GNOME Foundation — famoso ambiente desktop GNOME
- Linux Foundation — famoso per il sistema operativo basato su UNIX
- Mozilla Foundation — famosa per il browser
Un modo semplice per avere un impatto significativo sulla comunità degli sviluppatori è quando si dispone già di un modello mentale integrato del prodotto/framework/servizio sottostante. Canalizzerei la mia energia nel fornire quei suddetti contributi open source sfruttando la conoscenza e il contesto che ho costruito finora come sviluppatore.
Ciò potrebbe significare progetti diversi per sviluppatori diversi, ovviamente in base allo stack software a cui sono più abituati.
Elencherò progetti open source comuni basati sulle lingue:
I 10 migliori progetti Javascript di Technical Geek
- Reagisci tramite Facebook/Meta
- Tensorflow.js di TF [originariamente di Google]
- Node.js
- Angular.js
- jQuery
- Node Package Manager [npm]
- Vue.js
- Ember.js
- Meteor.js
- Polimero
- Tensorflow : apprendimento approfondito
- matplotlib — visualizzazione dei dati
- Boccetta - web dev
- Django della Django Software Foundation
- PyTorch — originariamente di Facebook/Meta
- MXNet di Apache Software Foundation
- Ansible : strumento di distribuzione, operazioni e orchestrazione
- Requests — Libreria HTTP di Python Software Foundation
- Scikit-learn — ML in Python
- Panda : scienza dei dati/analisi dei dati
- ApriJDK
- RXJava
- Apache Pinot : archivio dati OLAP
- Hazelcast : piattaforma di calcolo e archiviazione distribuita
- Formato Google Java: Google Java Style
- jOOQ — SQL per Java
- Stivale a molla
- Glide : memorizzazione nella cache e generazione di immagini per Android
- Guava : librerie Java di base di Google
- mockito — simulato, quadro di prova
- cerca su Google con le parole chiave “top 10 open source projects” e “language”
- Cerca su Github —https://github.com/search?q=java+language%3AJava&type=repositories&l=Java

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































