Le famose 3R del motto Reduce Reuse Recycle sono molto utilizzate in ambito ambientalista ma possono essere applicate anche al mondo della programmazione. Un buon programmatore è attento all'ecologia della propria applicazione visto che il codice che la compone è l'ambiente in cui passa molto del suo tempo lavorativo. Se l'applicazione è sviluppata rispettando l'ambiente nel quale gira è sicuramente un vantaggio per l'intero ecosistema virtuale.
Reduce: ridurre il codice. Sembrerà strano ma spesso è più difficile cancellare codice che aggiungerne di nuovo. Aggiungere troppo codice è spesso frutto overengineering che porta ad implementare funzionalità non strettamente necessarie e che non danno valore al cliente finale e che quindi si limitano ad inquinare il codice dell'applicazione rendendola difficile da mantenere. Quindi ridurre la dimensione del codice (in termini di numero di classi, di metodi e di righe) è un'operazione difficile ma che porta a notevoli risultati: semplificazione della codebase, maggiore manutenibilità e in genere un miglioramento delle performance.
Reuse: non reinventate la ruota tutte le volte. Scrivere classi che possono essere riutilizzate o usare librerie di terze parti che fanno già il lavoro che serve è una buona pratica. Il fatto di poter riusare una classe già scritta porta vantaggi sia in termini di tempo per la realizzazione che in termini di tempo di debugging (sperando che la classe che vi portate in casa sia bug free...o quasi)
Recycle: talvolta una classe potrebbe essere riutilizzata ma non è proprio come la vorremmo. Quindi spesso si ricorre al CTRL-C, CTRL-V introducendo duplicazioni e quindi codice inquinante. Se invece si applica un po' di refactoring si riuscirebbe a riutilizzare una parte di codice già scritto e adattarlo alla nostra applicazione. Anche qui i vantaggi sono numerosi, la quantità di codice che andiamo ad aggiungere è minore, evitiamo di creare classi troppo simili (o addirittura uguali) e ancora una volta risparmiamo tempo e non inquiniamo.
Questa idea del codice che rispetta l'ambiente mi piace, come del resto tutte le pratiche ambientaliste.
Che ne pensate? Vi sentite ambientalisti del codice?