
Relatore @Jacopo
Supponiamo di voler mettere su un attiità di autonoleggio unico inghippo, la totale mancanza di fondi, pero’ dalla nostra abbiamo la documentazione che in città questa figura serve, quindi andiamo in banca, otteniamo il nosto prestito ed apriamo l’attività..Dopo un po’ di tempo dovremmo ridare alla banca questi soldi, anzi dovremmo ridarglene un po’ di più. Visto il gran numero di persone che usano questo modello di business non ci sono dubbi che sia buono, anche se ovviamente, se riesco a farlo senza chiedere prestiti sarebbe meglio. Ora ribaltiamo la cosa sul legacy code, ovvero il codice non testato, se non arrivassi ad un punto di pareggio, in modo da poter saldare il mio debito..?? Eh? Jacopo che stai dicendo? (domanda che tutti avevamo in testa)..
Il refactoring è una serie di tecniche che permettono di conservare la specifica di input e di output cambiandone la struttura itnerna, utile a generare un valore aggiunto al proprio codice, che mi permette di “restituire i soldi alla banca”.. Utilizzare un CMS crea un debito tecnico, anche se ti viene fornito gratis vedi WordPress e simili. Se il nostro obbiettivo è avere codice pulito che lavora bene, il debito tecnico, impersonificato dalle librerie di terze parti o di codice non ottimizzato ci permette di avere un prodotto che ora funziona ma che non è pulito. Il refactoring previene il debito tecnico, perchè mantiene l’output e l’input pur cambiando il codice di base.
E tutto questo? Dove stà il Php e la Start up? Bè facilità e velocità di rilascio, bisogna cercare di evitare un indebitamento tecnico che allontana i finanziatori, quindi bisogna mettere on line qualcosa che funzioni, come demo ad esempio, in modo da poter analizzare senza troppe spese se questa applicazione puo’ funzionare. Perchè risolvere un problema domani costa x domandi costa x1>x, si puo’ arrivare addirittura all’esasperazione che il codice è scritto talmente male, da dover cancellare l’intero codice, che magari funziona ancora benissimo ma non è stato mai corretto rispetto alle prime sporche versione. Serve uno strumento che ci permetta di ospitare le nuove funzionalità del codice in maniera economica ed a lungo termine, la chiave di tutto è la semplicità. L’arte di massimizzare il lavoro ancora non svolto, minimizzando il lavoro in vista di un imminente possibilità di utilizzo di un progetto. L’abilità di minimizzare il lavoro stà anche nel saperlo appunto “refactorizzare” al meglio in vista di implementazione future, che sicuramente se ci sarà un buon lavoro alle spalle saranno fatte in eno tempo. Rapportato al discorso dei test fatto prima, è la capacità di creare innanzi tutto uno script di test, poi un algoritmo che dia risultati positivi subito, ed essere poi in grado di eseguire un refactoring per ottenere lo stesso risultato ma con un codice migliore.
Elenco delle recensioni degli altri Talk della giornata