Come si impara una nuova piattaforma / toolkit mentre si produce codice funzionante e si mantiene pulita la base del codice?
Quando so cosa posso fare con la piattaforma e il toolkit di base, di solito faccio questo:
- Creo un nuovo ramo (con GIT, nel mio caso)
- Scrivo alcuni test di unità (con JUnit, ad esempio)
- Scrivo il mio codice fino a quando non supera i miei test
Finora, tutto bene. Il problema è che molto spesso non so cosa posso fare con il toolkit perché è nuovo di zecca per me. Lavoro come consulente quindi non posso avere la mia lingua preferita / piattaforma / toolkit. Devo fare i conti con qualsiasi cosa il cliente utilizzi per il compito a portata di mano.
Molto spesso, devo fare i conti (spesso di fretta) con un grosso toolkit che so molto poco quindi sono costretto a "imparare facendo" (in realtà, programmando per "tentativi ed errori") e questo rende me ansioso.
Si noti che, ad un certo punto del processo di apprendimento, di solito ho già:
- leggi uno o più libri a cinque stelle
- ha seguito uno o più tutorial Web (scrivendo codice di lavoro una riga in a) tempo)
- ha creato un paio di piccoli progetti sperimentali con il mio IDE (IntelliJ IDEA, al momento. Uso Eclipse, Netbeans e altri, pure.)
Nonostante tutti i miei sforzi, a questo punto di solito posso solo avere una conoscenza grossolana della piattaforma / toolkit che devo usare. Non riesco ancora a cogliere ogni singolo dettaglio. Ciò significa che ogni nuova funzionalità che implica la preparazione di alcuni dati e un algoritmo non banale è un problema da implementare e richiede un sacco di tentativi ed errori.
Sfortunatamente, lavorare per tentativi ed errori non è né sicuro né facile. In realtà, questa è la fase che mi rende più ansioso: sperimentare un nuovo toolkit producendo codice funzionante e mantenendo pulito il mio codice base.
Di solito, in questa fase non posso usare Eclipse Scrapbook perché il codice che devo scrivere è già troppo grande e complesso per questo piccolo strumento. Allo stesso modo, non posso più utilizzare un piccolo progetto indipendente per i miei esperimenti perché ho bisogno di provare il nuovo codice in atto. Posso solo scrivere il mio codice e contare su GIT per un salvataggio sicuro. Questo mi rende ansioso perché questo tipo di codice intrecciato e mezzo maturo può diventare rapidamente incredibilmente difficile da gestire.
Come affronti questa fase del processo di sviluppo?
Come si impara facendo senza fare casino con la base di codice?
Qualche consiglio o trucchetto, best practice o qualcosa del genere?