Parlando per esperienza ...
Il primo progetto Open Source a cui ho contribuito, ero pieno di piscio e aceto quando ho iniziato anche io.
Ciò che ho fatto immediatamente è stato passare attraverso un mucchio di file sorgente e iniziare a stilizzare le cose secondo le mie preferenze personali, creare una patch enorme e inviarla.
Se stai lavorando con qualcuno che è "buono" (come lo ero io), rifiuterà immediatamente la patch. Soprattutto perché, quando si contribuisce a un progetto open source, è necessario suddividere le correzioni in blocchi di dimensioni ridotte che risolvono un singolo problema. 'Removed all gotos' non è un buon esempio di commit atomico. Anche se lo si suddivide in commit più piccoli e ben documentati, potrebbe comunque essere rifiutato.
Il motivo è che, poiché il codice viene elaborato da più persone (con stili diversi) nel tempo, non è realmente possibile accettare modifiche nell'intera libreria per adattarsi allo stile di uno sviluppatore. Se fosse possibile cambiare stile per motivi di stile, ogni progetto open source non andrebbe mai avanti perché il codice verrebbe costantemente modificato per adattarsi a diversi stili di sviluppo.
Il refactoring del codice e l'aggiunta di funzionalità (o la rimozione di cruft obsoleto) 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 inviando. Se puoi dare una buona ragione, ci sono maggiori possibilità che la tua patch venga inviata.
Il mio consiglio è di apportare alcune di queste modifiche su un file sorgente per dare un'idea di ciò che stai cercando di fare prima. Se le modifiche sono ben giustificate e accettate, chiedi se ulteriori modifiche potrebbero migliorare la qualità del progetto. In questo modo non perderai molto sforzo per nulla se le tue patch verranno rifiutate in futuro.
Lo sviluppo di open source è molto più che scrivere codice. Stai lavorando per costruire una relazione di fiducia perché lo faranno i gatekeeper (gli sviluppatori che controllano l'accesso push) ciò che devono per proteggere l'integrità del progetto. Man mano che invii più patch, il gatekeeper percepirà meglio il tuo stile e non dovrai giustificare le tue modifiche.
È un processo che richiede tempo ma è molto gratificante. Non solo si impara molto da essere in grado di guardare e criticare il codice di qualcun altro, ma si sarà essere criticato sul proprio stile.
Prima di perdere molto tempo a cercare di "correggere l'ingiustizia degli errori dello stile di programmazione degli altri", chiediti:
Le modifiche che stai proponendo si basano sull'aggiunta di valore al progetto o sulla base della tua religione stilistica interna.
C'è molta religione su Stack Overflow (e relativi siti di scambio di stack). Intendo molto . Le persone pensano e parlano dello stile all'infinito, come se più ne parli, più ti avvicini allo stile di codifica "perfetto, ideale, indistruttibile, infallibile". Ne parlo troppo soprattutto perché è divertente.
Nel mondo Open Source, lo stile non è così importante. La funzione è .
Nota: tutti questi consigli presuppongono che il tuo gatekeeper sia un programmatore ragionevole e di talento. Se lo è, considera fortunato di non esserti bloccato con uno dei bizzarri b & & # & es la cui unica preoccupazione è proteggere il loro "bambino". Essi non esistono in natura, quindi non stupitevi se si verifica uno.
goto
non è necessariamente un disastro. Ci sono molti casi in cui il suo uso è perfettamente giustificato.