Have something interesting to share with Java Eastern Europe community?
Become a speaker now
Speaker's activity
Тренинг “Быстрое погружение в Scala”
May 20-21
16 hours
6000 uah
Dinner included

Целевая аудитория

Java разработчики, которые заинтересованы в “быстром погружении” в Scala. Требуется твердое понимание “Java Core”: generics, шаблоны проектирования, ооп. Хотя Java-опыт предпочтителен, однако курс также может быть усвоен программистами на других языках: Python, C#, PHP.

Что вы узнаете на тренинге

Scala – современный гибридный объектно-функциональный язык программирования для JVM. В ряде предметных областей он может потеснить Java как более выразительный, более гибкий и более расширяемый. Однако, Scala является намного более “широким” и “глубоким” языком в сравнении с Java. Он включает множество языковых/синтаксических конструкций (многие из которых в отсутствуют в Java как таковые) и местами выводит программиста непосредственно в современную Computer Science (monad comprehensions, applicative functor, monoid, AST transformations).

Цель тренинга – глубоко изучить устройство и варианты использования наиболее базовых конструкций Scala с тем, что бы слушатели могли самостоятельно читать исходники большинства проектов на Scala и в будущем освоить и остальные, более “мощные”, но реже используемые конструкции (макросы, path dependent types, actors, “type acrobatic” libraries (scalaz, shapeless)).

Детальная программа

День 1

  • ООП
    • Классификация сущностей: class, object, trait, case class, method, function, package, field, constructor
    • Перегрузка операторов: prefix/infix/postfix form, precedence, associativity
  • Functional Programming
    • Functional literals, eta-expansion, placeholder syntax, closures
    • Curring, partial application
  • Scala Type hierarchy
    • Top types: Any, AnyVal, AnyRef
    • Bottom types: Nothing, Null, Nil, None
    • Type inference
  • Generics
    • Co-variance/contra-variance
    • Existential types
    • Higher-kind types

День 2

  • Specific types
    • Tuples
    • Structural types
    • Option, Either
  • Base collections: Array, List, Set, Map
    • Higher-order methods
    • Combinatorial algorithms
  • Implicits and type classes
    • Implicit conversions
    • Implicit arguments
    • View and context bounds
  • Pattern matching
    • Pattern matching and case classes, tuples
    • Pattern matching and extractors