Formation Scala

Cette formation, sera dispensée par un membre actif de la communauté Scala depuis 2010, architecte développeur expérimenté qui a joué un rôle déterminant dans la mise en place de plusieurs systèmes critiques et a mené plusieurs missions de mise en production complexes au cours de sa carrière de consultant dans les secteurs de la banque et du service.

 

Objectif de la formation Scala

Grâce à cette formation vous serez en mesure d’utiliser de manière efficace le langage de programmation Scala, connaîtrez l’ensemble des outils principaux de Scala et découvrirez la programmation fonctionnelle.

Ce cours montre les bases de la programmation en Scala.
Après avoir étudié le support de Scala par la JVM, vous rentrerez dans le détail des concepts de la programmation objet et fonctionnelle.
Enfin, vous étudierez les librairies spécifiques à Scala ainsi que sa coexistence avec les librairies de l'écosystème Java.

 

Informations pratiques

Durée : 4 jours
Date de la formation : nous contacter
Lieu : Grand Hotel Kempinski Geneva, Quai du Mont Blanc 19 – 1201 Genève

 

Tarif

CHF 2900.- Collations et déjeuners offerts

 

Formation

Type de formation : Présentiel

 

Connaissances et prérequis

Bonnes connaissances en Programmation Orientée Objet (Java, C#, C++).

 

Public

Architectes, Développeurs

 

Pédagogie

50% Théorique, 50% Pratique

 

Programme

Présentation de Scala :
- Historique du langage.
- Les paradigmes objet et fonctionnel.
- Les langages pour la JVM.
- Quelle différence avec les langages Java, C# et C++ ?
- Les avantages.
- Les types d'applications utilisant Scala (Twitter...).

Mise en place :
- Le Shell Scala.
- Couplage avec les environnements de développement.
- Le compilateur et l'interpréteur Scala.
- Utilisation de SBT.
- Le déploiement sur un serveur.
- Travaux pratiques : Mise en place de l'environnement.

Les principes de base du langage :
- La syntaxe, la notation infixe. Le typage statique, les types de base.
- Les structures de contrôle. Les packages et les imports.
- Paradigme OO (Class ,case class  Object, Trait), les interfaces. Les mécanismes d’inférence.
- La hiérarchie d'héritage. Les exceptions.
- Exercice : Ecriture et test d'un programme mettant en œuvre les bases du langage.

La programmation fonctionnelle :
- Le paradigme de programmation fonctionnelle.
- Le Pattern Matching (structure de contrôle case, les exceptions, la gestion des événements).
- Des données non mutables : variables, structures de données, objets... Les listes.
- Tuples et tables associatives (set). Les fonctions (passage en argument, affectation dans des variables...).
- Les méthodes d'ordre supérieur, les fonctions pures.
- Travaux pratiques : Ecriture et test d'un programme mettant en œuvre la programmation fonctionnelle.

Mise en œuvre des notions-concepts avancées :
- Types de données algébriques.
- Utilisation avancés du système de type (co- et contra variance, contraintes de type et type structurel )
- Récursivité. Les extracteurs.
- Fonctions partielles et « Currying »
- Les conversions implicites
- Le pattern « Type class »
- Exercice : Ecriture et test d'un programme mettant en œuvre les notions avancées du langage.

Utilisation des API et des librairies :
- Les collections, les conversions possibles avec les collections Java.
- Les librairies de test (ScalaTest)
- Utilisation de librairies de l'écosystème java.
- Exercice : Cohabitation d’objets Java et Scala au sein d’un même programme bien testé.