Questo è molto difficile da spiegare perché semplice non significa la stessa cosa per tutti.
Esempio. Alcuni sviluppatori pensano che ?:
sia semplice ma altri pensano che if
un'affermazione sia migliore. Quando scende a questo livello, non puoi piacere a tutti.
In generale, mezzi semplici senza complessità . Per comprendere la semplicità, dobbiamo comprendere la complessità.
Esistono due tipi di complessità:
La complessità essenziale si riferisce a una situazione in cui tutte le soluzioni ragionevoli a un problema devono essere complicate (e forse confuse) perché le soluzioni "semplici" non risolverebbero adeguatamente il problema. - Wikipedia
La complessità accidentale è la complessità che si presenta nei programmi per computer o nel loro processo di sviluppo (programmazione per computer) che non è essenziale per il problema da risolvere. - Wikipedia
Puoi verificare la complessità essenziale con le seguenti domande:
Questa soluzione è semplice? Posso spiegarlo al mio collega in un paio di minuti e loro lo ottengono? Esiste una soluzione più semplice al problema? Se sì, ci sono dei compromessi tra la soluzione complicata rispetto a quella semplice? Possiamo vivere con questi compromessi? Ad esempio, molti programmatori commettono un errore nell'ottimizzare tutto e la loro soluzione (e anche il codice) diventa eccessivamente complicata.
Verifica della complessità accidentale:
Il codice è semplice? Se ci ripenso tra tre mesi, quanto tempo ci vorrà per costruire il contesto nel mio cervello in modo da poter apportare il cambiamento che devo fare? Tutto nel mio codice sorgente ha uno scopo chiaro e lo trasmette efficacemente a me e agli altri sviluppatori ? Quanto è difficile testare il mio codice? Di solito più complicato è il tuo codice, più difficile sarà il test unitario, quindi di solito lo uso come misura di complessità. Di solito vuoi classi e metodi piccoli, ben definiti e focalizzati. I modelli di progettazione di solito ti aiutano a raggiungere anche questi.
Se ti ritrovi a voler utilizzare un modello di progettazione solo perché ne hai appena letto, probabilmente introdurrà una complessità accidentale. Se ti ritrovi a voler inserire qualcosa perché pensi che sia "intelligente", probabilmente introdurrà una complessità accidentale.
Spero che questo aiuti e non dimentichi: semplice non significa FACILE .