Ho usato Spring Boot nell'ultimo anno e mezzo e, nonostante non sia ne' un amante dei framework ne' un amante di Spring, non mi sono trovato troppo male. Avere finalmente abbandonato l'application server e' un enorme passo avanti.
Concordo con Uberto che Spring (boot o non boot) incoraggia la programmazione procedurale, DB-centrica, con domain objects anemici. I tempi di startup sono un problema; 6-10 secondi non sembrano tanti, ma ti rallentano enormemente il ciclo edit-compile-run. Anche gli unit test dei controller e dei repository sono rallentati di 3-5 secondi dai tempi di caricamento del contesto di Spring, e questo rende lento e faticoso il TDD. A proposito di "divento uno sviluppatore spring boot" io non me ne preoccuperei; alla fine sta anche a te decidere quanto delegare a Spring e quanto tenere in mano tua. Per esempio, non devi per forza usare JPA, puoi usare un altro meccanismo di persistenza. Puoi crearti degli application service che si possono testare senza fare partire il contesto di Spring; cioe' sono si' dei Service di Spring, ma li puoi istanziare nel test passando le dipendenze esplicitamente nel costruttore, e questo ti permette di avere unit test che partono istantaneamente. Stesso discorso per values e entities: anche se le entity sono oggetti di JPA, puoi istanziarli nei test senza fare intervenire Spring. La mia domanda per Federico e': al posto di Spring Boot, che cosa useresti? Qual e' la tua alternativa? Stessa domanda per Uberto :) PS Per confronto, un Jetty embedded istanziato senza Spring parte in 0.4 secondi... Il giorno lun 5 nov 2018 alle ore 20:50 Uberto Barbini [email protected] [it-torino-java-jug] <[email protected]> ha scritto: > > > Ciao Federico, > > partendo dalla tua ultima domanda: conoscere bene Spring Boot (non solo > cercare soluzioni su SO) e' sicuramente una cosa positiva per la tua > carriera, e dal codice di Spring Boot c'e' sicuramente da imparare per > tutti, per cui non mi preoccuperei di quello. > > Detto questo io preferisco framework meno invasivi perche' trovo che > incoraggia pratiche da procedural programming, che poi diventa spaghetti > velocemente. > L'autowiring e il controller MVC sono particolarmente pericolosi. :) > Certo puoi fare cose molto pulite con spring boot rinunciando alle > magie.... ma se sei capace di fare questo probabilmente fai prima a fare > cose pulite senza usare spring boot del tutto. > > Uberto > > > On Mon, 5 Nov 2018 at 16:30, Federico Fissore [email protected] > [it-torino-java-jug] <[email protected]> wrote: > >> >> >> Ciao a tutti >> >> di recente in azienda c'è stato un meeting di dev in cui si è deciso di >> dare preferenza a spring boot per tutti i nuovi servizi che faremo. >> >> Fra le motivazioni il fatto che spring è bellissimo, e che con una >> dipendenza ti porti dietro tutto quello che ti serve o ti servirà. >> >> Io ho espresso i miei dubbi, citando il fatto che spring fa un sacco di >> cose magiche e che per questo o sei un mago o fai copia incolla. >> Mi hanno letteralmente riso in faccia. Non è stato piacevole. >> >> Bile a parte, probabilmente mi dovrò arrendere e trasformarmi da uno >> sviluppatore java a uno sviluppatore spring boot. >> >> Ho il timore che con spring boot stia succedendo al mondo java quello >> che è successo con ruby on rails: oggi non ti serve conoscere ruby per >> programmare con ruby on rails (vero), domani non ti servirà conoscere >> java per programmare con spring boot. Cosa ne pensate, sto esagerando? >> >> Voi usate spring boot in produzione? Come vi trovate? >> >> federico >> > >
