Dimentichi anche il codice dopo aver completato l'attività? [chiuso]


13

Sono un nuovo programmatore e voglio chiedere ai programmatori senior (programmatori che hanno una certa esperienza nel mondo reale).

Faccio il mio lavoro e dopo la codifica, il mio progetto viene completato ma onestamente non ricordo il codice, il nome delle classi e dei framework e le loro proprietà.

A volte anche io dubito di me stesso che ho fatto questo?

È normale per tutti i programmatori o sono il programmatore più sciocco che non ricorda il codice e i nomi delle classi / proprietà?

Modificare:

Penso che molti programmatori mi stiano sbagliando qui. Ho detto che dimentico i nomi dei framework, i nomi delle classi, i nomi delle proprietà ma ricomincio a ricordare il mio codice una volta ricominciato a lavorarci. La mia domanda è: ricordi sintassi, nomi di classi / proprietà, ecc.?

Risposte:


24

In tutta onestà, non so come si possa essere sviluppatori a lungo termine senza la possibilità di "dimenticare" il codice su cui si è lavorato. La quantità di progetti e il codice risultante porterebbero infine a un puro sovraccarico di informazioni.

Tuttavia, vedo questa situazione come argomento di supporto per un design pulito e logico. Verrà un momento in cui dovrai supportare il tuo codice. Se hai scelto convenzioni di codifica forti e logiche, il tuo tempo di familiarizzazione sarà significativamente ridotto. Inoltre, ciò ridurrebbe teoricamente il tempo necessario per eseguire la manutenzione effettiva.


Ho incontrato due programmatori con memoria fotografica che possono ricordare cosa stavano pensando quando hanno lavorato su un pezzo di codice. Con le mie capacità di memorizzazione al di sotto della media, sono certamente costretto a fare il miglior lavoro possibile per rendere il codice pulito e documentato.
Giobbe

Penso che tu abbia ragione, solo perché "dimentico" il codice che posso programmare su 3-4 piattaforme diverse!
necixy,

9

Ricordare tutta la sintassi e le api per un progetto non è così importante come ricordare i concetti che hanno contribuito alla sua costruzione. Una volta che hai esperienza puoi leggere il codice e capire il significato proprio come leggere questi post.

Ciò che troverai nel tempo, se stai migliorando attivamente, è che vedrai i difetti in ciò che hai scritto in passato semplicemente leggendo il vecchio codice (che ti consiglio di fare). Attraverso quella pratica diventa più facile da fare; proprio come qualsiasi altra abilità.

Probabilmente ho scritto più di un milione di righe di codice ormai nella mia carriera e non c'è modo di ricordare tutto. Ricordo però i progetti e ciò che stavano tentando di risolvere (e le tecniche per risolverli).


5

Ho dimenticato molte cose dopo che ho finito di usarle, ma le dimentico in modo diverso.

Mi sono guardato negli anni e sono giunto alla conclusione che il nostro cervello (ok, il mio cervello) utilizza una certa strategia di memorizzazione nella cache:

  • Nuove informazioni vengono apprese, utilizzate e quindi inserite in una coda di scadenza. In poche settimane è sparito.

  • L'accesso ripetuto a quelle informazioni una volta apprese non oltre qualche mese fa le promuove in qualche modo in modo che possano essere ricordate per mesi, solo dopo scadono.

  • L'accesso ripetuto ai blocchi di conoscenza nel corso di diversi anni, con lacune di utilizzo per diversi mesi, li promuove a una memoria prioritaria in cui sono stati conservati per anni.

PS Sospetto che la prima idea di cache con l'applicazione ai computer sia venuta da qualcuno che osservava come gli umani imparano e ricordano le cose. Quindi non abbiamo inventato nulla, abbiamo semplicemente preso ciò che era già incorporato in noi.


2

Spesso. I commenti sono diventati passe ', ma trovo di solito in grado di riconoscere il mio codice dai miei commenti.

EDIT: non sto dicendo che sono d'accordo con la tendenza. Sto solo dicendo che è la tendenza oggi. Come sottolinea Dave, c'è sicuramente un punto di rottura. C'è una discussione assolutamente meravigliosa qui: "I commenti sono un odore di codice" . Cado nel campo "commenti per fornire informazioni sul mondo ESTERNO della base di codice (requisiti, cambiamenti aziendali, ecc.)".


I commenti sono passati? Semplicemente non vero.
Steve,

1
Oh, sono d'accordo; Sto solo dicendo che sembra esserci una tendenza a sentire che i commenti non dovrebbero essere richiesti. Ho interviste con persone che hanno insistito sul fatto che il nome del metodo dovrebbe essere tutto il commento di cui hai bisogno. Chiaramente, lavorano in un luogo mitico in cui le esigenze aziendali non cambiano semestralmente.
Michael Blackburn,

2
Direi che mentre PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () è descrittivo, rende anche il codice illeggibile in quanto distrugge il flusso.
Dave Wise,

1
Concordato x100. Se non avessi registrato con attenzione ciò che stavo pensando e perché avessi preso le decisioni che avevo preso attraverso commenti attentamente formulati, non avrei assolutamente idea di cosa stesse succedendo quando sono tornato a leggere il codice che avevo scritto mesi fa. Ho già provato a discutere questo argomento con gli astronauti dell'architettura che affermano che i commenti sono rumore o passe o obsoleto, ma nessuno ha mai ascoltato. Tutti presumono che io sia un cattivo sviluppatore perché devo scrivere commenti nel mio codice sorgente. Però sto bene. Aiuta me e tutti gli altri dopo di me.
Cody Grey,

@Dave: Mentre sono d'accordo con te, hai un metodo con due responsabilità. La tua penitenza è di 4 Hail Martins e 2 GangOfFours.
Michael Blackburn,

1

Sintassi Ricordo generalmente dopo un paio di usi. Ad esempio, quando ho iniziato a usare generics o linq, ho avuto qualche difficoltà a ottenere la sintassi corretta.

IntelliSense rende sicuramente il mio lavoro molto più semplice nel ricordare i nomi di proprietà e metodi.


1

Quando ero un tester, il capo sviluppatore dell'azienda una volta mi disse che il codice era stato scritto 6 mesi fa, nessuno dei miei dipendenti poteva essere ritenuto responsabile per questo. All'epoca mi ha scioccato. Ora che sono diventato sviluppatore, ho capito. Non ricordo i dettagli del codice che so di averci lavorato, ma i dettagli non ci sono.


0

Quasi sempre. Il mio progetto più recente (molto piccolo) è stato un test delle mie abilità (ruggine). Mi sono fatto scrivere un sacco di codice procedurale in uno stile C molto semplice, quindi trasformarlo in codice Java usando alcuni schemi di progettazione e mantenendo ogni metodo a non più di otto righe, se potevo.

Ho messo giù il codice per circa un mese. Quando ci sono tornato, ci è voluta un'ora che mi è sembrata di averlo scritto. Francamente, anche se avessi messo il mio nome in un campo di commento, non sono sicuro che mi avrebbe convinto.

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.