Accès illimité 24h/24 à tous nos livres & vidéos ! Découvrez la Bibliothèque Numérique ENI. Cliquez ici.
  1. Livres et vidéos
  2. Scala - Prise en main du langage

Scala Prise en main du langage

  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement et pour une durée de 10 ans
  • Version HTML
  • Accès illimité 24h/24, 7J/7
  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne

Présentation

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

Table des matières

  • Présentation
    • 1. Historique
      • 1.1 Origine du langage
      • 1.2 Liens avec Java
      • 1.3 Programmation orientée objet
      • 1.4 Programmation fonctionnelle
    • 2. Les avantages du Scala
      • 2.1 Langage de haut niveau
      • 2.2 Typage statique
        • 2.2.1 Vérification à la compilation
        • 2.2.2 Refactoring sûr
        • 2.2.3 Inférence de type
        • 2.2.4 Contre-arguments
    • 3. Installation
      • 3.1 Installation de Java
        • 3.1.1 Compatibilités des versions
        • 3.1.2 Téléchargement du paquet
      • 3.2 Installation de Scala
        • 3.2.1 Avec IntelliJ
        • 3.2.2 En ligne de commandes
    • 4. Scala REPL
    • 5. Premier projet Scala
      • 5.1 Bonjour le monde
      • 5.2 Compiler l’application
      • 5.3 Exécuter l’application
  • Un aperçu du langage
    • 1. Introduction
    • 2. Variables
      • 2.1 Définition
      • 2.2 Variable lazy
      • 2.3 Type d’une variable
      • 2.4 Structure des types
      • 2.5 Chaînes de caractères
        • 2.5.1 Définition
        • 2.5.2 Opérations basiques
        • 2.5.3 Interpolation de String
        • 2.5.4 Multi-lignes
      • 2.6 Valeurs numériques
        • 2.6.1 Types
        • 2.6.2 Opérations basiques
        • 2.6.3 Opérations mathématiques
        • 2.6.4 Conversion
      • 2.7 Booléen
      • 2.8 Éléments temporels
        • 2.8.1 Period
        • 2.8.2 Duration
        • 2.8.3 Date
        • 2.8.4 LocalDate
        • 2.8.5 LocalDateTime
      • 2.9 Collections
        • 2.9.1 Définition
        • 2.9.2 Seq
        • 2.9.3 List
        • 2.9.4 Vector
        • 2.9.5 Set
        • 2.9.6 Map
        • 2.9.7 ArrayBuffer
        • 2.9.8 HashSet
        • 2.9.9 HashMap
        • 2.9.10 Fonctions communes
        • 2.9.11 Tuple
    • 3. Entrée/Sortie
      • 3.1 Écrire dans la console
      • 3.2 Lire depuis la console
    • 4. Les structures de contrôle
      • 4.1 Structure if/else
      • 4.2 Structure for
        • 4.2.1 Boucle for classique
        • 4.2.2 Boucle for/yield
        • 4.2.3 Condition supplémentaire
      • 4.3 Structure while
    • 5. Méthodes
      • 5.1 Définition
        • 5.1.1 Type de retour d’une méthode
        • 5.1.2 Méthodes avec deux blocs d’arguments
        • 5.1.3 Méthodes sur plusieurs lignes
      • 5.2 Utilisation
      • 5.3 Argument par défaut
    • 6. Classes
      • 6.1 Création d’une classe
      • 6.2 Accès aux champs
      • 6.3 Champs supplémentaires
      • 6.4 Valeurs par défaut
      • 6.5 Méthodes d’une classe
      • 6.6 Constructeurs d’une classe
    • 7. Héritage
      • 7.1 Définition
      • 7.2 Champs/méthodes protected
      • 7.3 Surcharger les méthodes/champs
      • 7.4 Élément final
    • 8. Objets singletons
      • 8.1 Définition
      • 8.2 Objets companions
        • 8.2.1 Définition
        • 8.2.2 Création de nouveaux constructeurs
        • 8.2.3 Déconstruire une instance
    • 9. Exemple complet
  • Programmation fonctionnelle
    • 1. Fonctions
      • 1.1 Définition
      • 1.2 Multi-lignes
      • 1.3 Utilisation
      • 1.4 Fonctions anonymes
      • 1.5 Fonctions en argument
      • 1.6 Fonctions récursives
    • 2. Fonctions pures
    • 3. Trait
      • 3.1 Définition
      • 3.2 Étendre un trait
      • 3.3 Étendre plusieurs traits
      • 3.4 Trait scellé
      • 3.5 Classes abstraites
    • 4. Case class
      • 4.1 Définition
      • 4.2 Méthode copy
    • 5. Case object
    • 6. Pattern matching
      • 6.1 Définition
      • 6.2 Pattern constructeurs
      • 6.3 Pattern par défaut
      • 6.4 Pattern séquences
      • 6.5 Pattern n-uplets
      • 6.6 Pattern typé
      • 6.7 Pattern avec condition
    • 7. Option
      • 7.1 Définition
      • 7.2 Pattern matching
      • 7.3 Bonnes pratiques
    • 8. Expressions régulières
    • 9. Fonctions communes aux collections
      • 9.1 Accès aux éléments d’une collection
        • 9.1.1 head
        • 9.1.2 tail
        • 9.1.3 exists
        • 9.1.4 find
      • 9.2 Transformation de collection
        • 9.2.1 map
        • 9.2.2 flatMap
        • 9.2.3 filter
        • 9.2.4 collect
        • 9.2.5 takeWhile
        • 9.2.6 dropWhile
        • 9.2.7 sorted
        • 9.2.8 sortBy
        • 9.2.9 sortWith
        • 9.2.10 zipWithIndex
        • 9.2.11 grouped
        • 9.2.12 groupBy
      • 9.3 Opération sur une collection
        • 9.3.1 foreach
        • 9.3.2 mkString
        • 9.3.3 forall
        • 9.3.4 fold
        • 9.3.5 foldLeft / foldRight
        • 9.3.6 sum
    • 10. Gestion des erreurs
      • 10.1 try/catch/finally
      • 10.2 Option
      • 10.3 Either
      • 10.4 Try
      • 10.5 For compréhension
        • 10.5.1 Option
        • 10.5.2 Collection
        • 10.5.3 EitherEither
        • 10.5.4 Try
    • 11. Future
      • 11.1 Définition
      • 11.2 Fonctions liées aux Future
        • 11.2.1 andThen
        • 11.2.2 recover
        • 11.2.3 map
      • 11.3 Pattern matching
    • 12. Implicites
      • 12.1 Paramètres implicites
      • 12.2 Conversions implicites
        • 12.2.1 Changer le type d'un élément
        • 12.2.2 Utiliser une méthode d'un autre type
      • 12.3 Classes implicites
      • 12.4 Règles
        • 12.4.1 Le mot-clé implicit
        • 12.4.2 La portée d’un implicit
        • 12.4.3 Un implicit par conversion
        • 12.4.4 Une seule conversion à la fois
        • 12.4.5 Priorité aux non-implicites
      • 12.5 Avertissement
    • 13. Exemple complet
      • 13.1 Définition du service
      • 13.2 Modèles
        • 13.2.1 Friandise
        • 13.2.2 Boisson
        • 13.2.3 Canette
        • 13.2.4 Bouteille
        • 13.2.5 Etat
        • 13.2.6 Exceptions
      • 13.3 Opérations
        • 13.3.1 Récupération du total
        • 13.3.2 Récupération des produits restants
        • 13.3.3 Achat d’un produit
        • 13.3.4 Ajout de produits
        • 13.3.5 Suppression d’un produit
  • Scala Build Tool
    • 1. Définition
    • 2. Installation
      • 2.1 Sur Mac/Linux
        • 2.1.1 Homebrew
        • 2.1.2 SDKMAN!
      • 2.2 Sur Windows
        • 2.2.1 Scoop
        • 2.2.2 Chocolatey
    • 3. Création d’une application
      • 3.1 Architecture du projet
      • 3.2 Définition de construction
        • 3.2.1 Définition de la version de sbt
        • 3.2.2 Fichier build.sbt
      • 3.3 Import de dépendances
        • 3.3.1 Définition
        • 3.3.2 Dépendance de test
        • 3.3.3 Ajout d’un répertoire de librairies
      • 3.4 Utilisation de plug-ins
      • 3.5 Configuration d’une application
        • 3.5.1 Définition
        • 3.5.2 Accès à la configuration
      • 3.6 Variables d’environnement
      • 3.7 Écriture de log
    • 4. Exécution du programme
    • 5. Tests unitaires
      • 5.1 Dépendances
      • 5.2 Écrire un test unitaire
      • 5.3 Lancer le test
      • 5.4 Classes de test
        • 5.4.1 FunSuite
        • 5.4.2 FlatSpec
        • 5.4.3 FunSpec
        • 5.4.4 WordSpec
        • 5.4.5 FreeSpec
        • 5.4.6 FeatureSpec
  • Création d’une API
    • 1. Définition
    • 2. Akka HTTP
    • 3. Configuration
      • 3.1 Serveur
      • 3.2 Client
      • 3.3 Parsing
    • 4. cURL
      • 4.1 get
      • 4.2 post
      • 4.3 put
      • 4.4 delete
      • 4.5 patch
    • 5. Partie serveur
      • 5.1 Définition
      • 5.2 Routes
        • 5.2.1 concat
        • 5.2.2 extractUri
        • 5.2.3 path
        • 5.2.4 pathPrefix
        • 5.2.5 complete
      • 5.3 Méthodes
      • 5.4 JSON
        • 5.4.1 Définition
        • 5.4.2 Désérialisation
        • 5.4.3 Corps de la requête
        • 5.4.4 Corps de la réponse
      • 5.5 Gestion des erreurs
        • 5.5.1 ExceptionHandler
        • 5.5.2 failWith
        • 5.5.3 reject
      • 5.6 Exemple complet
        • 5.6.1 Routes
        • 5.6.2 Modèles
        • 5.6.3 Gestionnaires d’exceptions et de rejets
        • 5.6.4 Traitement des requêtes
    • 6. Partie client
      • 6.1 Définition du client
      • 6.2 Création d’une requête
      • 6.3 Traitement de la réponse
      • 6.4 Exemple complet
        • 6.4.1 Authentification
        • 6.4.2 Modèles
        • 6.4.3 Serveur
        • 6.4.4 Service
        • 6.4.5 Traitement des requêtes
  • Liaison à une base de données
    • 1. Introduction
    • 2. Installation
    • 3. Tables
      • 3.1 Définition
      • 3.2 Initialisation
    • 4. Requêtes
      • 4.1 Récupération
      • 4.2 Insertion
      • 4.3 Update
      • 4.4 Upsert
      • 4.5 Delete
      • 4.6 Contraintes
        • 4.6.1 Clé étrangère
        • 4.6.2 Index
      • 4.7 Agrégations
        • 4.7.1 Minimum
        • 4.7.2 Maximum
        • 4.7.3 Somme
        • 4.7.4 Moyenne
      • 4.8 Join
        • 4.8.1 Définition
        • 4.8.2 Left outer join
        • 4.8.3 Right outer join
        • 4.8.4 Inner join
        • 4.8.5 Left join
        • 4.8.6 Right join
        • 4.8.7 Full join
  • Aide-mémoire
    • 1. Depuis la console REPL
      • 1.1 Définition de variables
      • 1.2 Opérations sur les String
      • 1.3 Opérations sur les nombres
      • 1.4 Opérations sur les Boolean
      • 1.5 Opérations sur les types temporels
        • 1.5.1 Périodes
        • 1.5.2 Durées
        • 1.5.3 Dates
        • 1.5.4 Dates locales
        • 1.5.5 Date/temps locales
      • 1.6 Opérations sur les collections
        • 1.6.1 Séquences
        • 1.6.2 Listes
        • 1.6.3 Vecteurs
        • 1.6.4 Set
        • 1.6.5 Map
        • 1.6.6 ArrayBuffer
        • 1.6.7 HashSet
        • 1.6.8 HashMap
        • 1.6.9 Fonctions communes
        • 1.6.10 Tuples
      • 1.7 Entrée / Sortie
      • 1.8 Structures de contrôle
      • 1.9 Méthodes
      • 1.10 Classes
      • 1.11 Objets
    • 2. Depuis le terminal
    • 3. Accès à l’API ScalaMock
    • Index

Auteur

Agnès MAURYEn savoir plus

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.

Caractéristiques

  • Niveau Expert
  • Nombre de pages 362 pages
  • Parution janvier 2022
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-03368-1
    • EAN : 9782409033681
    • Ref. ENI : EPSCALA
  • Niveau Expert
  • Parution janvier 2022
    • HTML
    • ISBN : 978-2-409-03369-8
    • EAN : 9782409033698
    • Ref. ENI : LNEPSCALA

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (1 023 Ko)
  • Des fichiers complémentaires (2 Ko)
  • Des fichiers complémentaires (41 608 Ko)
  • Des fichiers complémentaires (43 078 Ko)
  • Des fichiers complémentaires (617 Ko)