Uno sviluppatore dovrebbe essere costretto a memorizzare i dettagli? [chiuso]

32

Molte volte dimentico le cose sulla mia applicazione. Non memorizzo i nomi delle tabelle o l'interrogazione e cerco di ottenere ciò che voglio. Il mio capo squadra mi ha detto che dovrei memorizzare i nomi delle tabelle che uso.

Lo sviluppatore ha bisogno di memorizzare i nomi delle tabelle nel database, i nomi delle classi ecc.? E se la risposta è "Sì, sempre", cosa dovrei fare per ricordare quelle cose?

    
posta Anyname Donotcare 11.06.2011 - 14:18
fonte

11 risposte

62

Non dovresti aver bisogno di memorizzare esplicitamente queste cose. Con ciò intendo sedermi e impararli come faresti con un elenco di parole per un test di ortografia. Nel primo caso i nomi dovrebbero essere memorabili e rilevabili in modo da poterli ritrovare senza troppo sforzo.

Dovresti anche avere accesso agli strumenti che ti aiutano qui con il completamento automatico e cose simili.

In un grande sistema di oltre 100 tavoli non è possibile che ci si possa aspettare che ricordi ogni nome di tabella e ogni nome di colonna, tuttavia, con nomi memorabili e rilevabili e un uso regolare dovresti ritrovarti a ricordare i dettagli più importanti e quelli usi ogni giorno.

    
risposta data 11.06.2011 - 14:36
fonte
34

Einstein ha detto "non memorizzare mai cosa si può cercare [nei libri]", e sono completamente d'accordo.

Usa la tua memoria per cose astratte (tecniche e principi di sviluppo) e non fatti che puoi trovare quando ne hai bisogno.

    
risposta data 11.06.2011 - 21:46
fonte
17

Imbarazzante ammettere - Ho usato C per quasi 30 anni, ma non ricordo mai come dichiarare i puntatori di funzione - Devo sempre uscire da K & R per verificare la sintassi.

Ancora più imbarazzante, devo pensare davvero a come funziona typedef - è:

 typedef foo int;

o

 typedef int foo;

Questi sono i miei punti ciechi personali. Non mi preoccuperei se ne hai di simili.

    
risposta data 12.06.2011 - 01:09
fonte
9

I computer sono bravi a ricordare esattamente le cose. I computer sono anche bravi a trovare cose che hanno ricordato in precedenza.

Quindi l'abilità chiave è usare il computer come estensione della tua memoria. Scrivi codice pulito, documenti, impara a usare efficacemente gli strumenti di ricerca, imposta il tuo ambiente di sviluppo in modo che sia facile trovare le cose, ecc.

Un buon effetto collaterale è che ti consentirà anche agli altri di leggere il tuo codice.

    
risposta data 11.06.2011 - 21:59
fonte
5

La memoria è importante

Una memoria strong è davvero uno dei migliori talenti che uno sviluppatore può avere; in realtà che chiunque può avere. È davvero una cosa speciale e invidio e ammiro chi ne è benedetto. Sicuramente può aiutare una persona a diventare uno sviluppatore più strong, avvocato, meccanico o (inserire il lavoro di scelta qui).

Quanto dovrebbe essere richiesto?

Ma non credo che sia un requisito giusto richiedere la memorizzazione di tutte le cose. Credo che inizierai a commettere le cose alla memoria come una parte naturale del fare le cose. Questo è il motivo per cui leggere un libro su una lingua e usarlo in un ambiente di produzione non è la stessa cosa. Mentre lavori quotidianamente con qualcosa (qualcuno chiamerebbe questa "pratica") inizierai a rendere alcune cose seconde.

Come per gli altri poster, credo che memorizzare parti chiave dell'applicazione aiuti. Tuttavia, non sono sicuro che investire nella memorizzazione di tutto ciò valga la pena di investire quando puoi sfruttare funzioni come l'intellisense, che è sempre più comune negli strumenti moderni.

Come puoi migliorare?

Non sono un esperto di memoria, ma alcuni credono che si possa effettivamente migliorare la memoria attraverso esercizi mentali come i giochi del cervello (cruciverba, sudoku, puzzle, ecc.). La teoria è che il tuo cervello è come un muscolo e se lo usi in modi diversi e lo eserciti, allora puoi rafforzarlo.

Sarebbe interessante vedere studi su come cose come i giochi di cervello, la programmazione e le attività interattive avrebbero un effetto sul cervello nel tempo. Potrebbero queste cose aiutare a combattere l'inizio della perdita di memoria causata dall'età o dalla demenza?

    
risposta data 11.06.2011 - 14:42
fonte
5

Da dove vengo, c'è un vecchio detto che dice qualcosa di simile in inglese: "Un pazzo memorizza, un uomo intelligente scrive". Fondamentalmente, non importa quanto sia buona la tua memoria, te ne dimentichi . Sei solo umano. E questo, di conseguenza, fa affidamento sulla memoria umana ... beh, inaffidabile. Anche se pensi di ricordare quei nomi di tavolo, puoi essere sicuro al 100%? Ti bastano pochi secondi per cercare i nomi dei tavoli, ma potresti aver bisogno di ore o persino di giorni per rintracciare i bug causati da errori di ortografia.

In conclusione, no, è un requisito ridicolo, specialmente su progetti di grandi dimensioni, che possono avere migliaia di tabelle e classi.

    
risposta data 12.06.2011 - 00:59
fonte
3

Se si tratta di qualcosa su cui stai lavorando ed è un compito a lungo termine, allora sì, dovresti lavorare per l'apprendimento ed essere in grado di ricordare vari nomi di tabelle e colonne, classi, variabili e metodi. Questo è qualcosa che verrà nel tempo mentre lavori con loro. Non li imparerai tutti da un giorno all'altro, ma dovresti sforzarti di conoscere il sistema su cui stai lavorando più che puoi. Inoltre, in un sistema di grandi dimensioni, non è possibile avere tutto memorizzato, ma non c'è motivo di non imparare e ricordare il più possibile.

Il dover cercare continuamente tutto è solo un colpo alla produttività: se stai lavorando su un compito e devi fermarti a guardare le cose ogni pochi minuti, è una pausa nella concentrazione. Usa gli strumenti appropriati per assisterti e impara / memorizza ciò che puoi. Migliorerà notevolmente la tua produttività.

    
risposta data 11.06.2011 - 14:33
fonte
3

C'è qualche motivo per memorizzare i nomi esatti delle classi? Io non la penso così

C'è qualche motivo per sapere quale tipo di termini il tuo progetto usa nei nomi delle classi, così puoi cercarli più velocemente? Sicuramente.

    
risposta data 13.06.2011 - 21:54
fonte
2

Non sono d'accordo sul fatto che dovresti memorizzare i nomi delle tabelle, ma dovrebbero essere facili da indovinare. Per renderlo facile da indovinare, sii coerente. In questo modo, non ti starai chiedendo "Hmm ... la tabella foo plurale o singolare? L'ID della chiave primaria o RID o FooRID?"

    
risposta data 12.06.2011 - 19:03
fonte
2

Non so come si possa interrogare un database in qualsiasi momento senza conoscere i principali nomi di tabelle e nomi di colonne critici (ma certamente non tutto). Conosco le persone che conoscono questa roba senza doverle dedicare ogni volta che diventano più preziose per l'organizzazione e diventano le persone che "vanno" quando gli altri sono bloccati.

Trovo che spesso quando le persone non iniziano a imparare queste cose, commettono errori nelle query senza rendersene conto. Errori Spesso capisco immediatamente nelle revisioni del codice perché capisco la nostra struttura del database e come le tabelle si relazionano tra loro e quali sono le regole aziendali critiche senza doverle cercare.

Personalmente trovo che le persone che non si preoccupano di apprendere la struttura spesso rimangono a livello di principianti nella ricerca di quel particolare database. Inoltre tendono a non sopravvivere ai licenziamenti. Penso che il tuo capo stia cercando di farti un favore per farti prestare più attenzione.

    
risposta data 13.06.2011 - 22:20
fonte
1

Oltre alla memoria strong, quella che aiuta molto è la progettazione basata su domini e le seguenti semplici convenzioni come nomi di tabelle e nomi di classi uguali. Se il proprietario della tua attività ti parla del requisito, i termini specifici del dominio utilizzati da lui / lei dovrebbero essere presenti nel codice. In questo caso non dobbiamo ricordare i mapping tra termini e nomi di business nel codice. Questa abitudine richiede un po 'di tempo per essere presa in considerazione, ma è molto utile in quanto riduce anche gli errori di traduzione avanti e indietro tra proprietari di attività e sviluppatori.

Insieme a questo se la durata del progetto è molto lunga, familiarizzare con la base di codice per un periodo di tempo aiuterà inconsciamente la memoria.

    
risposta data 11.06.2011 - 17:30
fonte

Leggi altre domande sui tag