Come sapere se creare un sistema generale o hackerare una soluzione

1

Sono nuovo nella codifica, lo sto imparando dall'anno scorso.

Una delle mie peggiori abitudini è la seguente:

Spesso sto cercando di creare una soluzione troppo grande, troppo complessa e che non raggiunge ciò che deve essere raggiunto, quando un hacky kludge può adattarsi.

Un ultimo esempio era il seguente (vedi il link del cestino della pasta sotto) link

Dopo aver spiegato il mio problema, una bella persona allo stackoverflow è venuta con questa soluzione link

Quando dovrei mantenere il mio codice semplice e quando dovrei creare una soluzione generale "grande"? Mi sento stupido a volte per costruire qualcosa di così grande, così imbarazzante, solo per risolvere un semplice problema. Non mi è venuto in mente che ci sarebbe stata una soluzione più semplice.

Tutti i suggerimenti sono ben accetti.

Best

    
posta Andy K 25.08.2014 - 16:18
fonte

1 risposta

10

Una buona linea guida che aiuta a sapere quando creare una soluzione "grande", generale e astratta, e quando è sufficiente risolvere il problema specifico, è The Rule of Three.

La regola del terzo viene spesso applicata alla duplicazione: ad esempio "se il codice viene duplicato più di due volte, spostalo in una funzione". Tuttavia si applica anche all'argomento di astrazione vs. risoluzione-problema specifico:

La prima volta che devi risolvere il problema, risolvilo. Non provare a creare un sistema di grandi dimensioni in grado di gestire casi più generici, dato che probabilmente hai torto nelle tue stime e perderai solo chiarezza e complicazioni.

La seconda volta che torni allo stesso problema, perfeziona un po 'il design ma non affrettati a costruire un grande sistema.

La terza volta viene visualizzato lo stesso problema, è possibile creare un sistema generale per gestire problemi di questo tipo.

Non precipitarti nelle soluzioni generali in quanto otterrai solo complicazioni e perderai chiarezza e concentrazione.

Una nota personale: mi ci è voluto un po 'di tempo per rendermi conto che di solito, semplice è meglio. Puoi sempre tornare e refactoring quando è necessario un sistema più generale. Ma insistere sulla creazione di un grande sistema per risolvere ogni piccolo problema che appare, non solo complica il codice per nulla, ma drena anche l'energia mentale che dovresti investire per lavorare effettivamente sull'applicazione.

    
risposta data 25.08.2014 - 16:26
fonte