Complete Scala Bundle
Complete Scala Bundle
About the Bundle
Scala is a general-purpose programming language and it's getting extremely popular these days. Some say that learning Scala could be a challenging task. My experience, however, suggests that this is actually a myth that has very little to do with reality. With the right approach, learning Scala can be easy, fun and rewarding.
The first book from this bundle - Modern Web Development with Scala - teaches Scala in a very practical way. First, it explains the basics but for the most part concentrates on applying Scala for building Web applications. The central piece of the narrative is Play framework, but many other Scala libraries make an appearance throughout the book. Overall, by reading it you will not only learn Scala but also become familiar with the mainstream part of its ecosystem.
The second book - Practical Event Sourcing with Scala - shows how to use Scala for building a relatively complex Web application based on an architectural pattern called event sourcing. It will demonstrate what challenges usually arise when developers start using event sourcing and also teach how to overcome them using Play, React, Kafka, Websockets and Neo4J. Overall, by reading it you will develop an expertise in mainstream Scala programming.
The third book - Mastering Advanced Scala - goes far beyond the basics and explores some less known (but often extremely powerful) concepts, techniques and libraries. It puts a great emphasis on functional programming ideas, category theory abstractions and advanced language features. In particular, it shows type classes, functors, monads and monad transformers among many other things, explains why they are useful and how popular functional libraries such as Cats and ScalaZ make use of them. Overall, this should be a great read for any intermediate Scala developer.
Modern Web Development with Scala
A concise step-by-step guide to the Scala ecosystem
In this book, you will learn how to build Web applications with Play Framework, access databases with ScalikeJDBC, perform asynchronous tasks with Scala Futures and Akka Actors, wire dependencies with MacWire, authenticate users with BCrypt, test your code with ScalaTest and Mockito.
The book shows how to use Gradle and SBT for building projects, how to integrate modern frontend tools such as Webpack and React into a Scala developer workflow. A chapter discussing application deployment and hosting considerations is also included.
The book doesn't expect any prior Scala experience as the basics are briefly explained in the first chapters. The required functional programming concepts are also explained in the beginning.
Who this book is for
This book is intended for people who are interested in learning and applying Scala to writing Web applications. It assumes a good knowledge of any programming language and familiarity with Web technologies.
Which versions are used
The main examples use Scala 2.12 and Play 2.6. When additional libraries are needed, their latest versions are used.
The cover illustration was designed by Freepik
Practical Event Sourcing with Scala
A comprehensive example based on Play and Kafka
This book takes a very practical and rather unusual approach towards the event sourcing architecture. Instead of diving into the DDD terminology, which is usually popular in the Enterprise, we will use this pattern to implement a typical Web application.
You don't need to be a Scala guru to understand code samples, but some familiarity with the syntax is required. If you're completely new to Scala, I highly recommend you go through the free sample of my other book - Modern Web Development with Scala. The PDF sample could be read in an hour, but it covers most widely used syntax constructs.
My special thanks go to Tim Ruhland for his enormous help in eliminating typos and errors. The cover illustration was designed by Freepik
Mastering Advanced Scala
Exploring the deep end of functional programming
In this book, you will learn how to utilize type classes for implementing ad-hoc polymorphism and discover why category theory abstractions are useful in real-life programming. A substantial part of the book is devoted to the overview of exisitng purely functional libraries such as Cats, Shapeless and ScalaZ where we discuss what concepts they are built on and how you can apply them to improve your code. The book also explores some less known concepts such as iteratees and optics.
Who this book is for
This book is intended for people who already know how to write applications in Scala but want to know more. If you are only starting out, I would recommend you start with my other book "Modern Web Development with Scala".
My special thanks go to Julien Truffaut and Alexandru Nedelcu for their valuable feedback on the Monocle and Monix chapters, repectively. Also, the cover illustration was designed by Freepik.
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms