Cosa succede più spesso ai programmatori durante la lettura del codice degli altri? [chiuso]

8

Quando leggi il codice di altri, di solito hai problemi a capirlo,  O di solito chiedi agli altri codice che è sbagliato / non efficiente / formattato male (ecc.)?

Qualcuno che legge ciò che hai codificato sul tuo primo lavoro

    
posta Vinícius Magalhães Horta 26.09.2012 - 04:08
fonte

3 risposte

19

In questi giorni non ho molti problemi a leggere il codice di altre persone. Ho visto così tanto codice brutto, che posso persino diagnosticare quale tipo di evoluzione ha portato a trovare qualcosa.

Nella maggior parte dei casi, il codice cattivo professionalmente è un codice che è iniziato in modo corretto, ma le migliori pratiche, i requisiti o gli skillset sono stati trasferiti da sotto. A volte è solo qualcuno che è cattivo o nuovo della lingua, ma è abbastanza evidente (e non comune in un ambiente professionale). Più capisco il motivo per cui il codice si decompone, meno mi interrogo sulla competenza di altri programmatori.

    
risposta data 26.09.2012 - 04:34
fonte
9

Questo potrebbe essere il risultato di questo processo di sviluppo .

Negli ultimi 2 anni ho lavorato con il codice di altre persone. Ho effettuato il debug, risolto bug e apportato miglioramenti. Nella mia esperienza di solito penso che il codice sia cattivo, pieno di bug, lento, consuma molta più memoria del necessario, usato i concetti di programmazione in modo inappropriato, veramente pessimo formattato (questo è difficile da vivere), non commentato e il flusso logico è un pasticcio. Cosa succede se ti dico che ho trovato una funzione con 5k linee di codice?

Quindi nella mia esperienza di solito metto in discussione la qualità del codice. Se qualcosa è difficile da capire, perché è complesso, ha senso dopo averlo capito. Ma se è solo brutto sarà sempre male.

    
risposta data 26.09.2012 - 04:45
fonte
4

Risposta breve: per lo più non ci piace o siamo molto critici sul perché la codifica sia fatta in questo modo, e non viceversa. Tuttavia, più leggi il codice cattivo di altri, più velocemente apprezzi il codice ben scritto:)

Anche se può sembrare ovvio, ma il modo migliore per migliorare nella lettura del codice delle persone è: leggendo il codice delle persone . Il problema è che quando le persone leggono il codice di altre persone in genere non provano a " grok " esso, cioè diventa intimamente familiare con esso; fanno l'equivalente della poesia della lettura veloce.

Per ingannare il codice di qualcun altro puoi provare quanto segue:

  • Rifattorizzare il codice.
  • Scegliere una funzione da aggiungere che richiede l'approfondimento del codice.
  • Scrittura di test unitari completi per il codice.

Tutti questi passaggi ti costringono a leggere il codice in modo più approfondito.

Ci sono anche alcuni suggerimenti su come massimizzare la comprensione di un codice base, che è stato introdotto per manutenzione e supporto:

Una volta che hai un'idea di base su cosa sta succedendo, potresti voler dare un'occhiata all'archivio dei dati (il livello di persistenza). Questo è un altro ottimo modo per capire cosa sta succedendo, ma assicurati che le cose che stai studiando siano effettivamente in uso. Riesco a ricordare un paio di volte di aver raggiunto il fondo di alcune classi con questo approccio, pensando di aver capito il sistema - e poi realizzando che in seguito le classi non sono state usate affatto.

Può sembrare un compito scoraggiante: richiede tempo e strumenti di fantasia non è in grado di rimuovere il bisogno di intelligenza, ma può anche essere molto gratificante. Mentre vai, probabilmente troverai molti bug in casi di angoli / bordi e vedi modi per migliorare il codice. Un consiglio: non concentrarti troppo sul refactoring / cambiamento finché non hai una buona conoscenza del codice. Spesso quello che sembra un errore o semplicemente un brutto codice quando lo vedi per la prima volta, risulta essere un genio sottile al lavoro su un'indagine più tarda e illuminata. Inoltre, la rimozione del codice inutilizzato è così soddisfacente e ideale per i futuri manutentori. Di cortesia, con l'assunto che tutta la base di codice sia controllata dalla versione.

    
risposta data 26.09.2012 - 04:30
fonte

Leggi altre domande sui tag