A volte un compito di grandi dimensioni è scoraggiante che può persino rendere "solo la codifica" senza pianificazione impossibile, in quanto non si sa da dove iniziare. Mi ricordo che anni fa mi sono sempre bloccato per anni cercando di lavorare su qualcosa di nuovo, perché ero cresciuto in posizione in cui il mio compito principale era quello di apportare miglioramenti - non avevo esperienza di lavorare con una tela bianca. Era paralizzante, incapace di impegnarsi in un approccio perché potrebbe essere una scelta progettuale non ottimale.
Ma in ogni caso, in questi giorni tendo a sedermi con la carta e a scorrere il disegno.
Se è grande, inizierò a delineare come alcune parti funzioneranno separatamente e alla fine questi pezzi si uniranno. Cerco di trasformarlo in classi o moduli e poi scoprirò che ci sono ridondanze nel design, o c'è qualcosa che semplicemente non funziona. Così ricomincio, scriverlo con un approccio migliore ... e scoprire altri problemi. Continuo a ripetere, ottenendo una migliore comprensione del problema ad ogni sweep. (Le lavagne possono essere utili per farti andare su e giù, essere fisico mentre risolvono questioni spinose.)
Quando ho un disegno psuedocode/diagramma di flusso che è abbastanza dettagliato che non ha problemi evidenti - è così che inizio la codifica.In un ambiente formale, lo schizzo definitivo del progetto è ciò che vorrei trasformare in una specifica e distribuire agli utenti/sviluppatori per la revisione.
Spesso, con un design complicato, io trasformare questo abbozzo di disegno in commenti di guidarmi come codice che ho, che è più veloce e più preciso di dover consultare i miei appunti ogni 2 secondi:
// open file
// read header line
// check header is right (watch for int problem)
// select right config object
// loop over lines, read each line into config object
E Converto ogni commento in codice.
Questo è molto più efficiente della codifica in un vicolo cieco e dover scrivere e riscrivere semplicemente perché non si è riusciti a gestire il problema dall'inizio. Ciò non significa che il design non cambierà più - troverai comunque dei problemi - ma alcuni dei principali bug di progettazione possono essere eliminati prima di colpire l'IDE.
Ci sono molti approcci al design, questo è proprio ciò che funziona per me. Ciò che è meglio può variare in base al tipo di progetto e alle dimensioni del team.
faccio la stessa cosa. Non avremmo potuto dire di meglio. –
Ben detto, e lo sto usando e mi ha dato buoni risultati nella mia carriera di 4 anni e continuando a seguirlo. – JPReddy