The second version of Scala has undergone multiple changes to support features and library implementations. Scala 2.13, with its main focus on modularizing the standard library and simplifying collections, brings with it a host of updates.
Learn Scala Programming addresses both technical and architectural changes to the redesigned standard library and collections, along with covering in-depth type systems and first-level support for functions. You will discover how to leverage implicits as a primary mechanism for building type classes and look at different ways to test Scala code. You will also learn about abstract building blocks used in functional programming, giving you sufficient understanding to pick and use any existing functional programming library out there. In the concluding chapters, you will explore reactive programming by covering the Akka framework and reactive streams.
By the end of this book, you will have built microservices and learned to implement them with the Scala and Lagom framework.
What you will learn
Acquaint yourself with the new standard library of Scala 2.13
Get to grips with the Grok functional paradigms
Get familiar with type system to express domain constraints
Understand the actor model and different Akka libraries
Grasp the concept of building microservices using Lagom framework
Deep dive into property-based testing and its practical applications
Who this book is for
This book is for beginner to intermediate level Scala developers who would like to advance and gain knowledge of the intricacies of the Scala language, expand their functional programming tools, and explore actor-based concurrency models.
Table of Contents
An Introduction to the Scala 2.13 standard library
Understanding Types in Scala
Deep Dive into Functions
Getting to know Implicits and Type Classes
Property based testing in Scala
Exploring Build-in Effects
Understanding Algebraic Structures
Dealing with Effects
Familiarizing Yourself with Basic Monads
A Look at Monad Transformers and Free Monad
An Introduction to Akka and Actor Models
Building Reactive Applications with Akka Typed
Basics of Akka Streams
Building Microservices with Scala
Building Microservices with Lagom
Preparing the environment and running code samples