Minimalismo del codice: cos’è e perché dovresti usarlo
Il concetto di minimalismo nacque all’inizio degli anni ’60, quando il movimento artistico minimalista emerse a New York. Gli artisti credevano che l’arte fosse diventata stantia e accademica, quindi cercarono di rivelare l’essenza dei loro soggetti usando il minor numero possibile di elementi per creare il massimo effetto.
Il principio del minimalismo si è poi trasmesso in molte altre sottoculture e da allora è stato applicato all’estetica, alla politica, all’architettura, al design dello stile di vita ed alla gestione aziendale.
Ma è possibile applicare il minimalismo anche al codice di programmazione?
Certo che si, il minimalismo del codice consisterebbe nel semplificare il codice mantenendo una visione minimalista.
L’idea è quella di rimuovere le righe di codice superflue. Il risultato è accreditare maggiormente la professionalità creando un codice più sofisticato, grazioso ed efficiente.
La maggior parte (di programmatori di software) ha familiarità con alcune convenzioni di codifica minime come la regola DRY (Don’t repeat yourself ) oppure il principio di risoluzione dei problemi come il rasoio di Occam.
Questi esempio si allineano alle pratiche di codifica minimalista.
Il principio di Pareto ed il minimalismo
Se prendiamo il principio di Pareto, oppure anche conosciuto come la regola 80/20.
Afferma che circa l’80% degli effetti proviene dal 20% delle cause.
Quindi possiamo dire che il 20% dell’input produce l’80% dell’output.
Applicando una visione minimalista possiamo utilizzare questo principio per apportare modifiche al nostro codice per farlo funzionare in modo più efficiente e/o utilizzando meno risorse.
Una cosa molto importante è quella di applicare la minimizzazione simultanea del codice su più dimensioni – ovvero:
1# Complessità orizzontale: profondità della nidificazione delle strutture del nostro progetto.
2# Complessità verticale: il numero di righe o la lunghezza del codice.
3# Numero di token utilizzati
4# Conteggio dei caratteri
5# Parametri: il numero di parametri utilizzati per ogni classe.
6# Istruzioni di ciclo: il numero di istruzioni iterative e la loro ricorsività.
7# Condizioni: il numero di istruzioni (if, branch, switch) utilizzati.
Ci sono alcuni vantaggi nella stesura del codice utilizzando questo modo minimalista come ad esempio la semplificazione del codice. Consentendo una comprensione più semplice e quindi meno problemi di regressione.
Meno caratteri vengono utilizzati nel codice e più semplici sono le istruzioni di comando, più facile sarà la lettura e la comprensione del codice.
Tutta questione di equilibrio
Tuttavia, è importante trovare un equilibrio tra la creazione di codice semplificato e snello e il mantenimento della comprensione.
Non serve scrivere codice pulito e minimale se diventa poi troppo criptico o difficile da capire.
Lo scopo è quello di condensare il codice elegantemente, facendo in modo che il codice funzioni al massimo.
Perché si dovrebbe scrivere un codice minimizzato?
Oltre ad apprezzare l’estetica del codice intelligente e semplificato, è utile cercare la semplicità perché, in questo caso, meno significa più.
Ridurre al minimo il codice significa che c’è una dipendenza ridotta ad un tema di sviluppo o programmatore specifico.
Quindi il codice può consentire processi di lavoro e transizioni di progetto più fluidi e la capacità di lavorare autonomamente ed indipendente sulla manutenzione.
Mettiamo ad esempio che un programmatore scrive il codice per un’azienda o un progetto e viene spostato. Ora qualcun altro dovrà occuparsene e leggere il codice precedente e scriverne di nuovo.
Se il codice non è facile da capire, il passaggio ad un altro programmatore richiederà più tempo e probabilmente sarà un esercizio frustrante.
Cercare di dare un senso al codice di qualcun altro potrebbe significare un incubo. Più il codice è leggibile, più è facile rilevare i bug e risolverli.
Il codice semplificato è molto più di una semplice composizione e disposizione. E’ godere dell’applicazione di un insieme strutturato di regole, di una base ben costruita.
Ricorda molto la sensazione che si prova quando semplicità e libertà si incontrano. Mi puoi capire, vero?
Ricorda che dobbiamo scrivere codice affinché altri umani (non macchine) possano leggere e comprendere, quindi un linguaggio semplice è la chiave per una comunicazione efficace.
Cerca di mantenere la tua tecnica il più minimale possibile con restrizioni limitate, classi con una sola responsabilità ed evitare commenti inutili.
Inizia a ridurre al minimo il tuo codice
In sintesi, il minimalismo del codice riguarda la ricerca della semplicità, il massimo beneficio dal minimo sforzo e la riduzione della dipendenza per creare una maggiore autonomia.
EFFICIENZA e FOCUS.
Il lavoro sarà terminato e perfezionato, non quando non c’è altro da aggiungere ma quando non c’è più niente da togliere.