Refactoring con classe
Fino a oggi avevo una classe ..Element::User che era una classe vera e propria, che controllava l'oggetto user, è una classe Result::User che era, naturalmente la classe Result generata dallo schema del DB.
Andando avanti a sviluppare mi è risultato sempre più ovvio come la classe Element::User non fosse altro che un proxy verso il modello. Ho deciso quindi di fare del refactoring affinché tale classe cessi di esistere e tutto sia gestito dal Result.
Visto che comunque non è che User abbia molta logica è stato tutto estremamente lineare. La maggior parte dei metodi (quelli brutalmente proxy) sono stati semplicemente eliminati mentre gli altri copincollati con poche modifiche nel diverso punto.
L'unica logica un po' pesante su cui ho dovuto lavorare è stata quella contenuta nel new della classe Element::User che si portava dietro, ovviamente diversi ragionamenti. Tutta quella roba l'ho spostata in un metodo dei controllers, anche lì copiandola in modo abbastanza lineare e con pochi problemi.
Nel tentativo, infine, di testare la nuova implementazione con i test automatici, mi sono scontrato per l'ennesima volta col problema della configurazione dell'ambiente Dancer di riferimento. Ho cercato, cioè, di fare in modo che nel momento in cui viene eseguito un test automatico questo carichi un suo specifico yml di configurazione. Qualsiasi esempio trovato su internet ha fallito nel farmi fare una cosa del genere. Non mi rimane che lanciare il test con:
perl t/000X_test.t --environment=t
Ora voglio, come cosa "facile" estendere il test perché il sistema arrivi alla vittoria e e poi come cosa "molto difficile" fare la stessa cosa di Element::User con Element::Game che però ha sicuramente molto più codice interessante...












