Course Information
- Available
- *The delivery and distribution of the certificate are subject to the policies and arrangements of the course provider.
Course Overview
Mutable State, Scala Type System In-Depth, Implicits
Scala Advanced, Part 1
The Escalate Software Scala Advanced course is intended for experienced Scala developers looking to improve their skills, particularly for library and API design and development. It covers topics needed to be effective in producing high quality, correct, powerful and flexible Scala libraries that are still easy to use by others.
Part 1 provides in depth and thorough knowledge of the Scala type system, an important precursor to any library development. We start off with a look at the dangers, and safe use, of mutable shared state in Scala, covering properties and caching. From there we delve into the Scala type system including:
Generics
Co- and Contra-Variance
Upper and Lower Bounds
Type Inference
Type Parameters and Type Members
Path Dependent Types
Refinement Types
Structural Types
Recursive Types
F-bounded Polymorphism
The final two modules then move on to the secondary Implicits type system that augments the regular Scala type system, covering:
Simple Implicit Parameters
Type Classes
Implicit classes, objects and methods
Type Class Composition
Implicit Constraints
=:= and <:<
Implicit Class and Type Tags
Implicit Conversions
extends AnyVal
And more.
After completing this course you will understand the Scala type system in a way that lets you construct your own well designed APIs, reason about type abstraction and calculus, apply implicit constraints and augment the language rules, and much more.
Parts 2 and 3 (available separately) cover topics like best practices, idioms, patterns, advanced functional programming, asynchronous programming, parser-combinators, macros, performance profiling and optimization, and much more. These parts rely on information presented during this advanced part 1 course.
Course Content
- 7 section(s)
- 134 lecture(s)
- Section 1 Introduction
- Section 2 Module 1 - Properties and State
- Section 3 Module 2 - Scala Type System Part 1
- Section 4 Module 3 - Scala Type System, Part 2
- Section 5 Module 4 - Scala Type System, Part 3
- Section 6 Module 5 - Implicits, Part 1
- Section 7 Module 6 - Implicits, Part 2
What You’ll Learn
- Use the full Scala type system to correctly implement general purpose re-usable libraries and APIs for other Scala developers to use easily.
Reviews
-
MMeg Li
WONDERFUL deep dive into Scala. It really expanded my knowledge of the language. My single complaint is I wish the modules had actual titles instead of, for example, "Module 6 - 17".
-
PPaul A. Kennedy
There were things that I learned. The exercises were ok. I thought the writing of getters and setters starting out was a bit of a waste of time. The explanation of =:= was bad and possibly wrong. We should be chaining implicits (the final car ordering implicit can chain to Ordering[Tuple2[Int,Int]]). I wanted exercises on =:= and <:<.
-
MMohemed Ali
It is an amazing course , I enjoyed all the videos.
-
PPhilip Kensche
Excellent course. Nice examples. I new most of the things already, but few things were new. There could be more exercises, also with different levels of hardness. The current exercises are really basic (which is appropriate for beginners, the the exercises are also nice).