Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Supports de cours
  2. Scala - Prise en main du langage

Scala Prise en main du langage

Informations

Livraison possible dès le 29 avril 2024
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-409-03368-1
  • EAN : 9782409033681
  • Ref. ENI : EPSCALA

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-03369-8
  • EAN : 9782409033698
  • Ref. ENI : LNEPSCALA
Scala est un langage fortement inspiré du langage Java qui permet à la fois de programmer avec des principes fonctionnels et de façon traditionnelle à la manière d’un langage orienté objet. Il est à ce titre une bonne porte d’entrée dans l’univers de la programmation fonctionnelle. Cet ouvrage s’adresse aux développeurs qui souhaitent donc se lancer dans le développement fonctionnel avec Scala. Tout en apportant des comparaisons entre Scala et Java,...
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Expert
  • Nombre de pages 362 pages
  • Parution janvier 2022
  • Niveau Expert
  • Parution janvier 2022
Scala est un langage fortement inspiré du langage Java qui permet à la fois de programmer avec des principes fonctionnels et de façon traditionnelle à la manière d’un langage orienté objet. Il est à ce titre une bonne porte d’entrée dans l’univers de la programmation fonctionnelle. Cet ouvrage s’adresse aux développeurs qui souhaitent donc se lancer dans le développement fonctionnel avec Scala.

Tout en apportant des comparaisons entre Scala et Java, l’ouvrage démystifie le langage et en expose les bases théoriques et pratiques, illustrées par de nombreux exemples de code. L’autrice présente également deux applications concrètes utiles pour développer en Scala dans le monde d’aujourd’hui.

Dans un premier chapitre, vous découvrez les origines de Scala ainsi que ses atouts avant de disposer d’un aperçu du langage au travers des éléments basiques du développement, de la définition d’une variable aux classes, en passant par les différents types de données.

Puis, vous entrez dans le coeur de l’ouvrage avec l’étude détaillée de la programmation fonctionnelle qui fait la force de Scala. Les concepts qui y sont présentés seront utilisés dans tous les chapitres à suivre.

Vous vous familiarisez ensuite avec sbt, l’outil de gestion et de construction de Scala, et découvrez l’architecture d’un projet ainsi qu’un cas concret d’utilisation du langage sur une problématique contemporaine : la création et la consommation d’API.

Pour finir, le cas des connexions à une base de données est détaillé, en prenant comme exemple une base en mémoire.

Tout au long de l’ouvrage, l’autrice propose des exercices proposant de mettre en pratique les concepts étudiés.



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Téléchargements

Avant-propos
  1. Introduction
Présentation
  1. Historique
    1. 1. Origine du langage
    2. 2. Liens avec Java
    3. 3. Programmation orientée objet
    4. 4. Programmation fonctionnelle
  2. Les avantages du Scala
    1. 1. Langage de haut niveau
    2. 2. Typage statique
      1. a. Vérification à la compilation
      2. b. Refactoring sûr
      3. c. Inférence de type
      4. d. Contre-arguments
  3. Installation
    1. 1. Installation de Java
      1. a. Compatibilités des versions
      2. b. Téléchargement du paquet
    2. 2. Installation de Scala
      1. a. Avec IntelliJ
      2. b. En ligne de commandes
  4. Scala REPL
  5. Premier projet Scala
    1. 1. Bonjour le monde
    2. 2. Compiler l’application
    3. 3. Exécuter l’application
Un aperçu du langage
  1. Introduction
  2. Variables
    1. 1. Définition
    2. 2. Variable lazy
    3. 3. Type d’une variable
    4. 4. Structure des types
    5. 5. Chaînes de caractères
      1. a. Définition
      2. b. Opérations basiques
      3. c. Interpolation de String
      4. d. Multi-lignes
    6. 6. Valeurs numériques
      1. a. Types
      2. b. Opérations basiques
      3. c. Opérations mathématiques
      4. d. Conversion
    7. 7. Booléen
    8. 8. Éléments temporels
      1. a. Period
      2. b. Duration
      3. c. Date
      4. d. LocalDate
      5. e. LocalDateTime
    9. 9. Collections
      1. a. Définition
      2. b. Seq
      3. c. List
      4. d. Vector
      5. e. Set
      6. f. Map
      7. g. ArrayBuffer
      8. h. HashSet
      9. i. HashMap
      10. j. Fonctions communes
      11. k. Tuple
  3. Entrée/Sortie
    1. 1. Écrire dans la console
    2. 2. Lire depuis la console
  4. Les structures de contrôle
    1. 1. Structure if/else
    2. 2. Structure for
      1. a. Boucle for classique
      2. b. Boucle for/yield
      3. c. Condition supplémentaire
    3. 3. Structure while
  5. Méthodes
    1. 1. Définition
      1. a. Type de retour d’une méthode
      2. b. Méthodes avec deux blocs d’arguments
      3. c. Méthodes sur plusieurs lignes
    2. 2. Utilisation
    3. 3. Argument par défaut
  6. Classes
    1. 1. Création d’une classe
    2. 2. Accès aux champs
    3. 3. Champs supplémentaires
    4. 4. Valeurs par défaut
    5. 5. Méthodes d’une classe
    6. 6. Constructeurs d’une classe
  7. Héritage
    1. 1. Définition
    2. 2. Champs/méthodes protected
    3. 3. Surcharger les méthodes/champs
    4. 4. Élément final
  8. Objets singletons
    1. 1. Définition
    2. 2. Objets companions
      1. a. Définition
      2. b. Création de nouveaux constructeurs
      3. c. Déconstruire une instance
  9. Exemple complet
Programmation fonctionnelle
  1. Fonctions
    1. 1. Définition
    2. 2. Multi-lignes
    3. 3. Utilisation
    4. 4. Fonctions anonymes
    5. 5. Fonctions en argument
    6. 6. Fonctions récursives
  2. Fonctions pures
  3. Trait
    1. 1. Définition
    2. 2. Étendre un trait
    3. 3. Étendre plusieurs traits
    4. 4. Trait scellé
    5. 5. Classes abstraites
  4. Case class
    1. 1. Définition
    2. 2. Méthode copy
  5. Case object
  6. Pattern matching
    1. 1. Définition
    2. 2. Pattern constructeurs
    3. 3. Pattern par défaut
    4. 4. Pattern séquences
    5. 5. Pattern n-uplets
    6. 6. Pattern typé
    7. 7. Pattern avec condition
  7. Option
    1. 1. Définition
    2. 2. Pattern matching
    3. 3. Bonnes pratiques
  8. Expressions régulières
  9. Fonctions communes aux collections
    1. 1. Accès aux éléments d’unecollection
      1. a. head
      2. b. tail
      3. c. exists
      4. d. find
    2. 2. Transformation de collection
      1. a. map
      2. b. flatMap
      3. c. filter
      4. d. collect
      5. e. takeWhile
      6. f. dropWhile
      7. g. sorted
      8. h. sortBy
      9. i. sortWith
      10. j. zipWithIndex
      11. k. grouped
      12. l. groupBy
    3. 3. Opération sur une collection
      1. a. foreach
      2. b. mkString
      3. c. forall
      4. d. fold
      5. e. foldLeft / foldRight
      6. f. sum
  10. Gestion des erreurs
    1. 1. try/catch/finally
    2. 2. Option
    3. 3. Either
    4. 4. Try
    5. 5. For compréhension
      1. a. Option
      2. b. Collection
      3. c. EitherEither
      4. d. Try
  11. Future
    1. 1. Définition
    2. 2. Fonctions liées aux Future
      1. a. andThen
      2. b. recover
      3. c. map
    3. 3. Pattern matching
  12. Implicites
    1. 1. Paramètres implicites
    2. 2. Conversions implicites
      1. a. Changer le type d’un élément
      2. b. Utiliser une méthode d’un autre type
    3. 3. Classes implicites
    4. 4. Règles
      1. a. Le mot-clé implicit
      2. b. La portée d’un implicit
      3. c. Un implicit par conversion
      4. d. Une seule conversion à la fois
      5. e. Priorité aux non-implicites
    5. 5. Avertissement
  13. Exemple complet
    1. 1. Définition du service
    2. 2. Modèles
      1. a. Friandise
      2. b. Boisson
      3. c. Canette
      4. d. Bouteille
      5. e. Etat
      6. f. Exceptions
    3. 3. Opérations
      1. a. Récupération du total
      2. b. Récupération des produits restants
      3. c. Achat d’un produit
      4. d. Ajout de produits
      5. e. Suppression d’un produit
Scala Build Tool
  1. Définition
  2. Installation
    1. 1. Sur Mac/Linux
      1. a. Homebrew
      2. b. SDKMAN!
    2. 2. Sur Windows
      1. a. Scoop
      2. b. Chocolatey
  3. Création d’une application
    1. 1. Architecture du projet
    2. 2. Définition de construction
      1. a. Définition de la version de sbt
      2. b. Fichier build.sbt
    3. 3. Import de dépendances
      1. a. Définition
      2. b. Dépendance de test
      3. c. Ajout d’un répertoire de librairies
    4. 4. Utilisation de plug-ins
    5. 5. Configuration d’une application
      1. a. Définition
      2. b. Accès à la configuration
    6. 6. Variables d’environnement
    7. 7. Écriture de log
  4. Exécution du programme
  5. Tests unitaires
    1. 1. Dépendances
    2. 2. Écrire un test unitaire
    3. 3. Lancer le test
    4. 4. Classes de test
      1. a. FunSuite
      2. b. FlatSpec
      3. c. FunSpec
      4. d. WordSpec
      5. e. FreeSpec
      6. f. FeatureSpec
Création d’une API
  1. Définition
  2. Akka HTTP
  3. Configuration
    1. 1. Serveur
    2. 2. Client
    3. 3. Parsing
  4. cURL
    1. 1. get
    2. 2. post
    3. 3. put
    4. 4. delete
    5. 5. patch
  5. Partie serveur
    1. 1. Définition
    2. 2. Routes
      1. a. concat
      2. b. extractUri
      3. c. path
      4. d. pathPrefix
      5. e. complete
    3. 3. Méthodes
    4. 4. JSON
      1. a. Définition
      2. b. Désérialisation
      3. c. Corps de la requête
      4. d. Corps de la réponse
    5. 5. Gestion des erreurs
      1. a. ExceptionHandler
      2. b. failWith
      3. c. reject
    6. 6. Exemple complet
      1. a. Routes
      2. b. Modèles
      3. c. Gestionnaires d’exceptions et de rejets
      4. d. Traitement des requêtes
  6. Partie client
    1. 1. Définition du client
    2. 2. Création d’une requête
    3. 3. Traitement de la réponse
    4. 4. Exemple complet
      1. a. Authentification
      2. b. Modèles
      3. c. Serveur
      4. d. Service
      5. e. Traitement des requêtes
Liaison à une base de données
  1. Introduction
  2. Installation
  3. Tables
    1. 1. Définition
    2. 2. Initialisation
  4. Requêtes
    1. 1. Récupération
    2. 2. Insertion
    3. 3. Update
    4. 4. Upsert
    5. 5. Delete
    6. 6. Contraintes
      1. a. Clé étrangère
      2. b. Index
    7. 7. Agrégations
      1. a. Minimum
      2. b. Maximum
      3. c. Somme
      4. d. Moyenne
    8. 8. Join
      1. a. Définition
      2. b. Left outer join
      3. c. Right outer join
      4. d. Inner join
      5. e. Left join
      6. f. Right join
      7. g. Full join
Aide-mémoire
  1. Depuis la console REPL
    1. 1. Définition de variables
    2. 2. Opérations sur les String
    3. 3. Opérations sur les nombres
    4. 4. Opérations sur les Boolean
    5. 5. Opérations sur les types temporels
      1. a. Périodes
      2. b. Durées
      3. c. Dates
      4. d. Dates locales
      5. e. Date/temps locales
    6. 6. Opérations sur les collections
      1. a. Séquences
      2. b. Listes
      3. c. Vecteurs
      4. d. Set
      5. e. Map
      6. f. ArrayBuffer
      7. g. HashSet
      8. h. HashMap
      9. i. Fonctions communes
      10. j. Tuples
    7. 7. Entrée / Sortie
    8. 8. Structures de contrôle
    9. 9. Méthodes
    10. 10. Classes
    11. 11. Objets
  2. Depuis le terminal
  3. Accès à l’API ScalaMock
Auteur : Agnès MAURY

Agnès MAURY

De formation principalement mathématique, Agnès MAURY a orienté ses choix professionnels vers la cryptologie et la sécurité informatique. Elle débute sa carrière dans le développement informatique, en particulier avec le langage Java, très utilisé dans ces domaines. Elle découvre le langage Scala lors d’un projet de construction d’un nouveau système bancaire en temps réel. Aujourd’hui consultante en développement informatique, elle a fait de Scala son langage de prédilection.
En savoir plus

Nos nouveautés

voir plus