- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Scala Programmeren worden de syntax en mogelijkheden van de Scala programmeertaal besproken. Scala combineert de kracht van object georiënteerd en functioneel programmeren en maakt het mogelijk om met aanzienlijk minder code een vergelijkbare functionaliteit te leveren als Java of C#.
De cursus Scala Programmeren gaat van start met een bespreking van de concepten en karakteristieken van de Scala taal in vergelijking met Java. Scala levert net als Java code op die in de Virtual Machine wordt geladen.
Vervolgens wordt aandacht besteed de syntax de data types, variabelen, control structures en packages van Scala, evenals de mogelijkheden om Scala uit te breiden en het gebruik van Scala Frameworks zoals het Lift Web Framework en het Play Framework.
Speciale aandacht gaat uit naar de functionele aspecten van Scala zoals first-class functions, higher order functions en de verschillende manieren van parameter overdracht in Scala. Ook andere typische taal elementen van Scala komen aan de orde zoals closures en deferred execution.
Vervolgens wordt stil gestaan bij data structures en collection types in Scala zoals lists, maps en tuples en hun respectievelijke higher order functions.
Ook de object georiënteerde aspecten van Scala zoals inheritance, constructors, companion objects en overriding worden besproken. Hierbij komt de ondersteuning van duck typing aan de orde. Uitgebreid wordt eveneens stil gestaan bij het concept van Scala Traits and het gebruik van mixins.
Een aparte module is gewijd aan pattern matching in Scala. Hierin passeren Match expressions, Match met variables en Match met Sequences de revue. Ook komen wildcards aan de orde en wordt besproken hoe met any kan worden omgegaan.
Tot slot wordt aandacht besteed aan concurrency in Scala met het Akka Framework en met gebruikmaking van Actors en Mailboxes en asynchrone communicatie.
Deze cursus is bestemd voor Java, C# en andere developers die willen leren programmeren in Scala of die de mogelijkheden van Scala willen onderzoeken.
Om aan deze cursus te kunnen deelnemen is kennis en ervaring met een object georiënteerde programmeertaal zoals Java of C# vereist.
De theorie wordt behandeld aan de hand van presentatie slides. Demo's worden gebruikt om de concepten te verduidelijken. De theorie wordt afgewisseld met oefeningen. Er wordt gebruik gemaakt van een moderne IDE. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Scala Programmeren.
Module 1 : Scala Intro |
Module 2 : Language Syntax |
Module 3 : Functions and Closures |
Introducing Scala Basic Syntax Scala Concepts Semicolons Scala Keywords Scala Characteristics Comments in Scala Interactive Shell Compiling Scala Scala HelloWorld Variables and Constants Java versus Scala Scala versus Java Scala Resources |
Variables and Scopes Scala Data Types Scala Type Hierarchy If and Else Statements Multiple Selection For and While Loops For Yield Filtering Breakable Blocks Formatted Strings Scala Arrays Multidimensional Arrays Ranges Scala Operators Reserved Symbols |
Scala Functions Call by Value and by Name Named Parameters Variable Arguments Default Parameters Recursive Functions Nested Functions Methods versus Functions Anonymous Functions First Class Functions Higher Order Functions Partially Applied Functions Currying Functions Simple Closure |
Module 4 : Data Structures |
Module 5 : Classes and Traits |
Module 6 : Pattern Matching |
Scala Collection Hierarchy Scala Lists Nills and Cons Head and Tail List Concatenation Scala Sets Concatenation Min and Max Intersections and Unions Scala Maps Keys and Values Scala Tuples Scala Options GetOrElse |
Scala Object Orientation Scala Classes Preventing State Change Object Singleton Constructors Companion Objects Inheritance Abstract Classes Traits Partial Trait Implementation Abstract Members Mixins Implicit Classes |
Unit returning Expressions Dealing with Any Match Expression Example Match Expressions Matching using case Classes Match with Variables Match with Sequences Extended Wildcard _* Scala versus Java Pattern Matching in Assignments Match with Types Matching on Tuples Pattern Matching with Option |
Module 7 : Scala Concurrency |
||
Concurrent Programming Akka Framework Actors in Akka Hello Akka World ActorSystem Actor Hierarchy Actor Information Supervision Supervision Strategies Top Level Supervisors OneForOneStrategy Location Transparency Akka Guidelines |