Plan Szkolenia

Introduction

  • Who uses Scala?
  • Developing large-scale, purely-functional programs

Overview of Functional Programming in Scala

  • Higher-Order Functions
  • Combinators
  • Polymorphic Functions

Mastering Scala Types

  • Product types & Sum types
  • Supertypes & Subtypes
  • Universals & Existentials
  • Higher-Kinded Types
  • Type Lambdas

Mastering Scala Type Classes

  • Classes & Instances
  • Tricks with Implicits
  • Polymorphic Constraints

Case Study: Highly-stateful programs with complex external systems

Coding Exercise

Working with Data

  • Immutable Data & Recursion
  • Catamorphisms & Church Encoding
  • Fixed-Point Data
  • Recursion Schemes

Advanced Pattern Matching in Scala

  • Deep matching
  • Using extractors

Case Study: Scala and Big Data

Coding Exercise

Using Functional Patterns

  • Options, Eithers & Validations
  • Semigroups & Monoids
  • Functors
  • Applicatives
  • Monads
  • Foldables & Traversables
  • Lenses

Working with Effects

  • IO
  • State
  • Reader
  • Combining Effects

Case Study

  • TBD

Coding Exercise

Functional Architecture

  • Modern Architecture for FP
  • Reified Computation & Deferred Evaluation
  • Compositional Evaluators
  • Optimization Techniques
  • Purely Functional Mocking

Libraries and DSLs

  • Custom control structures with by-name parameters
  • Building well-designed libraries and internal DSLs

Functional Exception Handling

  • Traditional exception handling
  • Functional exception handling
  • Using Try with For comprehensions

Final Coding Exercise and Evaluation

Closing Remarks

Wymagania

  • Hands on experience in Scala programming
  • Familiarity with pattern matching and traits

Audience

  • Scala programmers who wish to learn the more advanced and nuanced features of Scala
  14 godzin
 

Liczba uczestników


Data rozpoczęcia

Data zakończenia


Daty szkoleń są uzależnione od dostępności trenerów. Szkolenia standardowo odbywają się w godzinach od 09:00 do 16:00.
Szkolenia zdalne są realizowane w przypadku uzbierania się grupy szkoleniowej liczącej co najmniej 5 osób na dany termin.

Opinie uczestników (1)

Szkolenia Powiązane

Combined C/C++, JAVA and Web Application Security

  28 godzin

Advanced Java Security

  21 godzin

Combined JAVA, PHP and Web Application Security

  28 godzin

Standard Java Security

  14 godzin

Java and Web Application Security

  21 godzin

Powiązane Kategorie