Dove vai a leggere buoni esempi di codice sorgente? [chiuso]


53

Ho sentito alcune persone dire che uno dei modi migliori per migliorare la tua capacità di codifica è leggere il codice degli altri e comprenderlo. La mia domanda, come programmatore relativamente nuovo, dove posso trovare buoni esempi di codice sorgente che non sono troppo lontani dalla mia testa?


Questo è stato chiesto su StackOverflow: stackoverflow.com/questions/3083525/...
nikie

3
Ripenso al mio vecchio codice.
Paul

Paul, questo non aiuterà l'OP, vero? Ovviamente non hanno un buon codice già scritto in passato. sheesh.
junky

2
@junky speriamo che abbiano un certo senso dell'umorismo però :)
Konrad Morawski

questa è la domanda che stavo per fare, ma è per fortuna che l'ho trovato. Ho pensato che questo fosse solo un mio problema che non so dove trovare i codici
Dhananjay,

Risposte:


30

Puoi sfogliare progetti open source su siti di repository come GitHub , Codeplex , Google Code o BitBucket . Troverai progetti con diversi livelli di complessità, quindi dovresti essere in grado di trovare qualcosa che ti interessi e che non ti interessi troppo all'inizio.

Un'altra opzione sono i post sul blog del codice sorgente settimanale di Scott Hanselman .

Consiglio di iniziare con un progetto attivo e consolidato per ridurre le probabilità di iniziare a leggere il codice che non è ancora stato utilizzato e controllato. Idealmente, trova qualcosa che ti interessa e che puoi usare. L'uso dell'app ti aiuterà a capire il codice sorgente. Un altro vantaggio della scelta di un progetto open source è che potresti essere in grado di contribuire con alcune correzioni o funzionalità, che contribuiranno a rendere più interessante la lettura del codice.

Fissare un sacco di codice di qualcun altro può essere intimidatorio, quindi inizia con la mainfunzione (o equivalente) e prosegui da lì.


3
-1: un principiante non può distinguere tra codice buono e codice negativo, quindi i progetti di "navigazione" non sono di aiuto. In qualche modo hai coperto questo problema raccomandando progetti "affermati", ma ho visto un codice terribile in progetti di cui tutti abbiamo sentito parlare. Non ho una risposta migliore, però. In realtà è una domanda difficile, che ha bisogno di una risposta su misura per i livelli di abilità, gli interessi dell'individuo e filtrata attraverso la conoscenza di un mentore.
Cris,

1
@Cris Non sono in disaccordo, ma noterò che c'è molto da imparare anche dalla lettura di codici errati. Probabilmente, leggere e seguire il codice errato è ancora più difficile che immergersi in un progetto adeguatamente organizzato. (E questo è prima di iniziare a cercare di capire quale sia il codice "buono". :))
Adam Lear

1
abbastanza vero. Ma per la maggior parte di noi non-geni, l'autoeducazione ha dei limiti. La maggior parte dei principianti (in tutti i campi) ha bisogno dell'esposizione al "buono" per avere un'idea di ciò che è buono. E "Internet" è un clamore mondiale di "I'm good!", Che non aiuta.
Cris,

10

Pochissime persone scrivono un buon codice sorgente al primo tentativo. Un buon codice sorgente è spesso prodotto da una serie di revisioni. Pertanto, se riesci a trovare il codice sorgente che è stato sottoposto a peer review più volte e corretto più volte, probabilmente ti trovi in ​​una posizione migliore. Alcuni progetti open source (e alcune parti di questi) sono particolarmente ben rivisti. Il codice proveniente da aziende che hanno cicli di revisione obbligatori (ad esempio Google, ma ce ne sono molti altri) potrebbe adattarsi al conto.

Detto questo, non sono sicuro che il tuo obiettivo dovrebbe essere quello di trovare "ottimo codice". Dovrebbe essere guardare diversi stili di codice (come quelli scritti dai tuoi colleghi) e imparare a identificare i punti positivi e negativi al riguardo. Più punti negativi identifichi, più ti impegnerai per migliorare il tuo codice e sapere come fare.

In particolare, credo che un ottimo approccio per ottenere un senso di buon codice sia quello di utilizzare il debugger interattivo per rintracciare codice complesso, seguendo le catene di invocazioni. Ad esempio, vai su uno dei file principali della tua azienda, metti un punto di interruzione e inizia a capirne le cose.

Dopo alcune volte sei disorientato da funzioni a 100 righe con dieci livelli di rientri e dipendenze su globali e alcune volte che riesci a superare un codice ben decomposto, migliorerai la tua programmazione.


4

Invece di trovare grandi codici, consulta i libri di programmazione generale.

ad es. Codice completo, Scrittura di codice solido, Modelli di progettazione (sono sicuro che ci sono molti altri libri in giro in un'altra domanda e risposta in questo sito)

Quei libri descrivono la filosofia che è considerata un buon codice. Leggibilità, prestazioni, manutenibilità, rilevamento di errori ecc.

Che serve una risorsa ancora migliore e più efficiente del cercare di capire cosa l'autore sta cercando di ottenere.

Ps Un buon design del software è ciò che dovresti esaminare anche tu. Il che sarebbe difficile da riconoscere solo osservando i codici, dato che il progetto è abbastanza grande.


1
Vorrei citare "Clean Code" come una buona risorsa.
mr

3

Ho scoperto che il codice delle librerie fornito con il tuo linguaggio di programmazione preferito è spesso un buon inizio per vedere quelle che si pensa siano le migliori pratiche e il buon stile di programmazione.

Anche se non vuoi iniziare con posti come algoritmi di ordinamento o classi di container complesse.

Un altro posto per approfondimenti interessanti nella scrittura del codice è Project Euler ( http://projecteuler.net/ ). Lieve svantaggio lì: devi prima risolvere il problema per ottenere l'accesso al forum in cui altri hanno pubblicato le loro soluzioni (sfide interessanti per tutti i livelli di esperienza). Ma una volta fatto troverai esempi per quasi tutti i principali linguaggi di programmazione. E dal momento che hai già risolto il problema, ti aiuterà a capire il codice di altre persone. Inoltre potrai vedere il codice delle lingue che non conosci ancora, ma che potresti trovare interessante.


3

Mi è davvero piaciuto leggere Beautiful Code . Ha esempi di codice brevi ma molto belli con spiegazioni dettagliate.

... importanti informatici offrono casi di studio che rivelano come hanno trovato soluzioni insolite e attentamente progettate per progetti di alto profilo. Sarai in grado di guardare oltre la spalla dei maggiori esperti di progettazione e codifica per vedere i problemi attraverso i loro occhi.

... Gli autori pensano ad alta voce mentre lavorano attraverso l'architettura del loro progetto, i compromessi realizzati nella sua costruzione e quando era importante infrangere le regole.

Questo libro contiene 33 capitoli forniti da Brian Kernighan, KarlFogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashish Gulhati, Lincoln Stein, Jim Kent , Jack Dongarra e PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho e Rafael Monnerat, Bryan Cantrill, Jeff Dean e Sanjay Ghemawat, SimonPeyton Jones, Kent Dyb Otte e Douglas C. Schmidt, AndrewPatzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd e Christopher Seiwald e Brian Hayes ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.