Scala & play framework course

This is a course crafted for OO developers that want to learn Scala & functional programming.

Table of Contents

parts of the repository

The repo is divided between docs, examples, and exercises. Docs are markdown files compiled to revealJS presentations using pandoc. They're also checked at compile-time to ensure all teh code examples compile correctly

Sessions

scala

Fast introduction to the Scala programming language, trying to show all differences between functional programming and OOP.

This lives in docs/tut/scala.md

Play Framework

In this session we will see some of the features of Play Framework. Play is a framework for rapid web development built on top of Scala, Akka, Akka Streams and Akka HTTP. It showcases resiliency, scalability and type safety.

This lives in docs/tut/play.md

Akka

In this session we will understand the Actor paradigm and how akka works in particular. Akka is a concurrency framework for the JVM, showcasing the actor paradigm, a stream processing framework, an HTTP layer, connection to a lot of data systems, etc.

This first session shows the features of the akka-actor package.

This lives in docs/tut/akka.md

Akka http

akka-http is the HTTP layer for Akka.

This lives in docs/tut/akkahttp.md

Akka streams

akka-streams is a reactive streams implementation in Akka. It overlaps some features of akka-actor, since both can be used for data processing, concurrency, etc. Currently akka-stream is getting a lot of attention because its ease to use and the type safety it provides (opposed to akka actors).

This lives in docs/tut/akkstreams.md

Kafka

Kafka is a distributed log system and is the current de facto standard for system communications in big data & microservices architecture. It provides a lot of different ways to access the data inside it, from simple producer-consumer architecture, to streaming, to KSQL.

This lives in docs/tut/kafka.md

building the slides

To build the slides for the course you'll need pandoc. Get it from your package manager.

Once you have it:

$ make all

This will generate HTMLs for the presentation in the docs/tut-out presentation.

running the examples and exercises

To run an example or exercise, you can just use sbt:

$ sbt simple/run

tags

There are tags for descriptions & solutions of all the exercises. Just git checkout whichever you want to see it.

exercise description solution
exercise 1.1 exercise-1.1-description exercise-1.1-solution
exercise 1.2 exercise-1.2-description exercise-1.2-solution
exercise 2.1 exercise-2.1-description exercise-2.1-solution
exercise 2.2 exercise-2.2-description exercise-2.2-solution
exercise 3 exercise-3-description exercise-3-solution
exercise 3.2 exercise-3.2-description exercise-3.2-solution
exercise 4 exercise-4-description exercise-4-solution
exercise 5 exercise-5-description exercise-5-solution