Hands-On Scala Programming

Hands-On Scala Programming

English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 2h 06m | 451 MB

Leverage Scala programming with functional constructs and build real-world applications

Over the last few years, Scala has seen a tremendous increase in its industry adoption as a tool for functional programming. Despite that, learning Scala can seem a bit intimidating, given its functional, immutable, and object-oriented nature.

This course adopts a hands-on approach to building a server-side chat application from scratch using Scala. You will begin by setting up a Scala environment with its sbt build tool. Then, you will build a server-side chat app using functional programming and recursion schemes together with immutable data structures to make your processing requests easy. Next, you’ll learn about advanced Scala features such as implicits, which foster code extensibility.

Moving on through the course, you’ll use Scala’s rich type system to create applications that identify all possible problems at compilation time. Finally, you’ll compose all knowledge and improve server-side processing to work in a concurrent and highly parallelizable way using Scala’s concurrency API.

By the end of this course, you will have become fully proficient at using advanced Scala programming features in your production applications.

Learn

  • Explore what’s new in Scala 2.13
  • Build intelligent server-side chat application via step-by-step exercises
  • Write expressive code while keeping it concise using Scala’s programmer-friendly features
  • Eliminate issues early on using Scala’s strong type features, giving you more time to solve the real problem at hand
  • Use standard Scala library constructs to add functionalities within your server-side application
  • Apply high-order functions and recursion to build highly optimized yet elegant solutions
  • Reduce duplication in your code even further with type-level programming
  • Utilize implicit parameters as a tool to enhance the design pattern of your application
Table of Contents

1 The Course Overview
2 Getting the Workspace Ready
3 Object-Oriented and Functional Syntax Interaction
4 Types and the Type Hierarchy
5 Values, Definitions, and Variables
6 Standard Scala Lib
7 Structure of a Function
8 Calling a Function
9 Partial Functions versus Partially Applied Functions
10 Higher-Order Functions
11 Piecing It Together with Control Structures
12 Iterations and Exceptions with try catch
13 Packages and Libraries
14 Recursion
15 Collection
16 Monadic Operations
17 Variance – Covariance, Contravariance
18 Streams
19 Implicit Conversions
20 Implicit Parameters
21 Resolution of Implicits
22 Debugging Implicits
23 Dependent Types
24 The Role of Implicits in Type-Level Programming
25 Type Classes
26 Existential Types
27 Higher-Kinded Types
28 Quick Review of Parallelism versus Concurrency
29 Parallel Collections
30 Futures
31 Actors
32 Java versus Scala Threads and Thread Pools