Dove vai a leggere dei 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 capirlo. La mia domanda, come programmatore relativamente nuovo, dove posso trovare esempi di codice sorgente validi che non siano troppo lontani dalla mia testa?

    
posta Jesse McCulloch 22.01.2011 - 01:17
fonte

5 risposte

30

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

Un'altra opzione è i codice sorgente settimanale del blog di Scott Hanselman.

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

Fissare una serie di codice di qualcun altro può intimidire, quindi inizia con la funzione main (o equivalente) e prosegui da lì.

    
risposta data 22.01.2011 - 01:27
fonte
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 sottoposto a peer review più volte e risolto più volte, probabilmente ti troverai in una posizione migliore. Alcuni progetti open source (e alcune parti di questi) sono particolarmente ben recensiti. Il codice proveniente da aziende che hanno cicli di revisione obbligatori (ad es. Google, ma ce ne sono molti altri) potrebbe essere adeguato alla bolletta.

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

In particolare, credo che un ottimo approccio per ottenere un buon senso del codice sia usare il debugger interattivo per tracciare un codice complesso, seguendo le catene di invocazioni. Ad esempio, vai a uno dei file principali della tua azienda, inserisci un punto di interruzione e inizia a capire da dove provengono.

Dopo alcune volte ti senti disorientato dalle funzioni a 100 linee con dieci livelli di indentazioni e dipendenze globali, e alcune volte che ti limiti a scrivere codice ben decomposto, migliorerai la tua programmazione.

    
risposta data 22.01.2011 - 02:32
fonte
4

Invece di trovare ottimi codici, consulta la sezione Libri di programmazione generali

es. Codice Completo, Scrittura codice solido, Design Patterns (sono sicuro che ci sono molti altri libri in giro in un'altra domanda e risposta in questo sito)

Quei libri stanno descrivendo la filosofia che è considerata un buon codice. Leggibilità, prestazioni, manutenibilità, rilevamento dei bug ecc.

Che offre risorse ancora migliori e più efficienti di cercare di capire che cosa l'autore sta cercando di ottenere.

P.S. Il buon design del software è ciò che dovresti esaminare anche tu. Che sarebbe difficile riconoscere solo dall'osservazione dei codici, dato che il progetto è abbastanza grande.

    
risposta data 26.01.2011 - 16:03
fonte
3

Ho scoperto che il codice delle librerie fornite con il linguaggio di programmazione scelto è spesso un buon inizio per vedere quali sono le migliori pratiche e lo stile di codifica.

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

Un altro posto per informazioni interessanti sulla scrittura del codice è Project Euler ( link ). Leggero svantaggio: devi prima risolvere il problema per accedere al forum dove 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 altri popoli.Per vedere il codice delle lingue che non conosci ancora, ma che potrebbero trovare interessanti.

    
risposta data 22.01.2011 - 08:45
fonte
3

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

...leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes.

...The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules.

This book contains 33 chapters contributed by 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 and PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho andRafael Monnerat, Bryan Cantrill, Jeff Dean and Sanjay Ghemawat, SimonPeyton Jones, Kent Dybvig, William Otte and Douglas C. Schmidt, AndrewPatzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman,Laura Wingerd and Christopher Seiwald, and Brian Hayes...

    
risposta data 26.01.2011 - 15:39
fonte

Leggi altre domande sui tag