Objectifs pédagogiques
- Décrire les liens entre Scala, Java et la JVM
- Reconnaître la base du langage Scala
- Programmer objet en Scala
- Estimer quels sont les avantages de la programmation fonctionnelle
- Intéragir avec du code Java
- Utiliser le Pattern Matching.
Niveau requis
Connaissance pratique d'un langage de programmation objet (Java, C++, C#).
Public concerné
Développeurs, architectes, chefs de projets techniques.
Programme
Du lambda-calcul à Scala
- Programmation impérative et programmation fonctionnelle
- Limitations des langages traditionnels
- Bases théoriques de Scala
- Définition des langages fonctionnels
- Historique des langages fonctionnels
Scala sur la JVM
- Exécution de code Scala
- Lien entre Scala et la JVM
- Runtime supportés
- REPL et SBT
Types, variables et structures
- Opérateurs
- Maps et Tuples
- Tableaux mutables ou pas
- Liens avec les collections Java
- Typage et généricité
- Pattern matching
- Annotations
Scala et la programmation objet
- Classes et constructeurs
- Objets singletons
- Packages
- Traits
- Héritage et mixins
Programmation fonctionnelle avec Scala
- Immutabilité
- Fonctions de premier ordre
- Fonctions anonymes
- Récursivité
- Currying
- Closures
Utilisation de Scala
- Frameworks utilisant Scala
- Scala et Play!
- Cohabitation Java/Scala
- Acteurs et concurrence
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)