giannino1995 ha scritto:
Ok dai ho capito che Spring Boot prima di altri 6 anni di programmazione JAVA me lo posso scordare, me ne faccio una ragione.
L'ultima cosa che ti chiedo e di verificare se quel testo può essere un aiuto per il mio scopo futuro (Spring Boot 2 + JPA + Ajax). Per scopo futuro intendo dire prima che sia morto...
Guarda, non mi pare proprio il caso di buttarla sul drammatico ("prima che sia morto"). Se vuoi imparare le cose, puoi sicuramente farlo ma c'è da "impegnarsi" un po' e da studiare nel modo "giusto".
Prima ti ho chiesto una cosa: quanto hai già letto e capito del framework standard, questo:
https://docs.oracle.com/en/java/javase/14/docs/api ??
Così come c'è questa documentazione, esiste la documentazione "javadoc" anche per tantissime altre librerie e framework: Spring, Spring Boot, Spring Data JPA ..., Hibernate, Jackson, Guava, le varie Apache Commons Xyz, log4j, SLF4J, ecc..
Se non riesci a leggere questo tipo di documentazione, farai sempre una fatica enorme nel fare ed usare le cose.
E poi cosa hai studiato finora del linguaggio Java? Specialmente per le webapp, è molto importante conoscere tutte le feature introdotte in Java 5: enhanced for, autoboxing/unboxing, generics, annotation e poi tutte le principali collection. Ti sono chiare tutte queste cose?
Io in queste settimane sto (ri)studiando Kotlin (è un linguaggio per la JVM). Pensi che mi sia "buttato" subito a fare applicazioni in Kotlin con Spring/Spring Boot? (che è poi un obiettivo finale)
Assolutamente NO!!! Ho preso il IntelliJ IDEA Community che ha il supporto diretto per Kotlin e poi ho fatto un progettino di studio dove sto mettendo TANTI piccoli sorgenti per "provare" tutti i costrutti e i concetti di Kotlin.
Ad esempio sulle extension function ho fatto un mio esercizio:
import java.math.BigInteger
import java.text.NumberFormat
fun main(args: Array<String>) {
for (e in 64..96) {
val value = 2 pow e
println("2^$e = ${value.format()}")
}
}
infix fun Int.pow(exp: Int) = BigInteger.valueOf(this.toLong()).pow(exp)
fun BigInteger.format() = NumberFormat.getIntegerInstance().format(this)
Con le extension function si possono "aggiungere" funzionalità alle classi già esistenti. Le classi NON vengono ovviamente modificate, quelle function vengono usate e risolte "staticamente" da Kotlin. Ho definito un pow da usare in forma "infissa" con il tipo Int per poter fare es.
2 pow e ed ottenere un BigInteger. E poi al BigInteger ho aggiunto un format() per formattare in maniera localizzata.
E per testare il tutto ho fatto un for su un range (di Kotlin) per provare un po' di esponenti, stampando con i "template" String di Kotlin.
E la stampa è es.:
2^64 = 18.446.744.073.709.551.616
2^65 = 36.893.488.147.419.103.232
.....
Tu forse penserai: "ma queste sono stupidaggini!" Certo .... ma con questi tanti piccoli "esercizi" su costrutti e concetti sto prendendo MOLTA confidenza con Kotlin. È una strada più difficile, "dura" ma alla fine mi darà una conoscenza fine e dettagliata del linguaggio. E a me piace così ...