Corso Programmazione Scala
Cos’è il linguaggio di programmazione Scala?
Scala è una tecnologia molto utilizzata nel mondo dei Big Data. E’ un linguaggio multi-paradigma che integra le caratteristiche sia dei linguaggi orientati ad oggetti che dei linguaggi funzionali.
La caratteristica del linguaggio di programmazione Scala è che è “Scalabile”, molto più di Java. Da questo deriva il suo nome (SCALable Language). Una volta compilato il codice diventa “bytecode” per la JVM. Inoltre è un open-source compatibile ed è ottimizzato per sviluppare applicazioni “data-centric”.
Scala offre molto più di Java, un supporto alla gestione della concorrenza: ecco perchè Scala è l’ideale per analizzare i Big Data attraverso l’elaborazione parallela.
Il linguaggio di programmazione Scala viene progettato nel 2001 da Martin Odesky e viene pubblicato e distribuito nel 2004.
Programma Corso programmazione Scala
Obiettivi: fornire le basi per lo sviluppo nel linguaggio Scala
Requisiti: conoscenze di programmazione in almeno un linguaggio ad oggetti (preferibile Java)
Corso Programmazione Scala erogato solo su richiesta e per le aziende, anche in modalità online virtual classroom.
Programma: (40 ore di lezione teoriche e pratiche)
Introduzione alla programmazione in Scala
Scala e Java – quale usare, quando e perchè
Panoramica degli Scala development tools (Eclipse, Scalac, Sbt, Maven, Gradle, REPL, ScalaTest)
Panoramica degli Scala Frameworks
Fondamenti della sintassi in Scala
Data types
Variabili
Operatori
Funzioni e lambdas
Scala Statements / Loops / Expressions
Extending Builtins
I/O in Scala
Programmazione ad oggetti in Scala
Definizioni ed uso delle classi
Oggetti
val and def
Gestione delle Eccezioni
Ereditarietà e Gerarchia Oggetti
Traits
Packages and package objects
Test-Driven Development (TDD) in Scala
Scrivere un buon JUnit Test
Utilizzo di ScalaTest
Programmazione Funzionale in Scala
Cos’è la programmazione Funzionale?
Pure & First Class Functions
Funzioni Anonime
Higher Order Functions
Currying, Closures & Partials
Functional concepts & TDD
Collezioni e Generi
Java and Scala Collections
Collezioni Mutabili ed Immutabili
Using generic types
Lists, tuples and dictionaries
Functional programming and collections
map, fold and filter
Flattening collections and flatMap
“For Comprehension”
Pattern Matching con Scala
Utilizzo di “Match”
Case Classes
Wildcards
Case Constructors & Deep Matching
Utilizzo degli Extractors
Serializazione utilizzando Scala & XML
Parsing XML
Native Scala XML API
Conversione degli oggetti in XML e viceversa
Scala e concorrenza con Akka
Creazione ed utilizzo dei threads
Futures e promises
Introduction ad Akka
Creazione actor systems
Gestione degli Errori
Utilizzo dei routers
Tail recursion
Option pattern
Variance e Contravariance
Ereditarietà multipla
Cake pattern
Panoramica SBT (Simple Built Tool)