Parlando dall'esperienza ...
Il primo progetto Open Source a cui ho contribuito, quando ho iniziato anch'io ero tutto pieno di piscio e aceto.
Ciò che ho immediatamente fatto è stato esaminare un sacco di file sorgente e iniziare a stilizzare le cose secondo le mie preferenze personali, creare una patch enorme e inviarlo.
Se stai lavorando con qualcuno che è "buono" (come lo ero io) (s), rifiuterà immediatamente la patch. Principalmente perché, quando contribuisci a un progetto open source, devi abbattere le tue correzioni in blocchi di dimensioni di morso che risolvono un singolo problema. 'Removed all gotos' non è un buon esempio di commit atomico. Anche se lo si analizza in commit più piccoli e ben documentati, potrebbe essere ancora respinto.
Il motivo è che, poiché il codice viene elaborato da più persone (con stili diversi) nel tempo, non è realmente possibile accettare modifiche all'intera libreria per adattarsi allo stile di uno sviluppatore. Se fosse possibile cambiare stile per motivi di stile, allora ogni progetto open source non andrebbe mai avanti perché il codice dovrebbe essere costantemente modificato per adattarsi a diversi stili di sviluppo.
Il codice di refactoring e l'aggiunta di funzionalità (o la rimozione di cruft deprecati) di solito hanno la precedenza sul codice di 'pulizia'.
La parte più difficile e gratificante di lavorare su un progetto open source è, ti verrà chiesto perché stai proponendo di apportare le modifiche che stai presentando. Se puoi dare una buona ragione, c'è una migliore possibilità che la tua patch venga inviata.
Il mio consiglio è di fare alcune di queste modifiche su un file sorgente per dare un assaggio di ciò che stai cercando di fare prima. Se i cambiamenti sono ben giustificati e accettati, chiedete se ulteriori cambiamenti come questo migliorerebbero la qualità del progetto. In questo modo non sprecherai un grande sforzo per nulla se le tue patch verranno rifiutate in futuro.
Lo sviluppo di open source è più che scrivere codice. Stai lavorando per creare una relazione di fiducia perché i gatekeeper (sviluppatori che controllano l'accesso push) faranno ciò che devono per proteggere l'integrità del progetto. Mentre invii più patch il gatekeeper avrà una migliore percezione del tuo stile e non dovrai giustificare tanto le tue modifiche.
È un processo che richiede tempo ma è molto gratificante. Non solo imparerai molto dall'essere in grado di guardare e criticare il codice di qualcuno, ma tu sarà essere criticato sul tuo stile.
Prima di perdere un sacco di tempo cercando di "correggere l'ingiustizia degli errori dello stile di codifica altrui", chiediti:
Are the changes you're proposing based on adding value to the project or are they based on your own internal stylistic religion.
C'è un lotto di religione su Stack Overflow (e relativi siti Stack Exchange). Intendo un lotto . Le persone pensano e parlano di stile all'infinito, come se più ne parli, più ti avvicini allo stile di codifica "perfetto, ideale, indistruttibile, infallibile". Ne parlo molto spesso soprattutto perché è divertente.
Nel mondo Open Source, lo stile non è così importante. La funzione è .
Nota: tutto questo consiglio presuppone che il tuo gatekeeper sia un programmatore ragionevole e di talento. Se (s) è, conta te stesso fortunato che non sei rimasto bloccato con uno dei whily b @ & # & la cui unica preoccupazione è proteggere il loro 'bambino'. Loro fanno esistono in natura, quindi non sorprenderti se ne incontri uno.