What you'll learn:
- Use case classes to get lots of free, best practice functionality
- Contruct pattern matches like a Scala pro
- Create and use PartialFunctions
- Create, and manipulate Futures to avoid blocking and write reactive code
- Obtain an in-depth grounding in the Scala collections and examine the enormous potential and power in the collections API
- Know which collections to use in different circumstances to get desired performance
- Use Option types instead of nulls to virtually eliminate NullPointerExceptions
- Harness Java libraries effectively and safely, and even improve them in Scala
- Know how to mix Java and Scala on a project, if you need to
- Build your project using sbt
- Write custom tasks and settings in sbt
Scala Applied, part 3 is the final part of this Scala programming language course. The course in its entirety is aimed at giving you a full, day-to-day working knowledge of Scala programming, including some of the most common core library APIs.
This part starts with a final language feature for Scala (continuing from the other language features covered in parts 1 and 2). Pattern matching, partial functions and case classes are examined, how they can be used together, and how partial functions can help you avoid certain runtime errors by validating input to a function before you call it.
Then we delve into the collections API in the core libraries (a very in-depth 2 module examination of the capabilities and performance tradeoffs of the various collection options), and finish up with a look at using Scala on Java projects, using Java libraries from Scala and how to harness build tools (particularly SBT)to build your project and even write custom settings and tasks. Following that we look at the Futures API in the core libraries.
This course is also a good lead-in to the Stairway to Scala Advanced 3 part course which concentrates on in-depth language features, higher level functional abstractions, common patterns and idioms, type theory and other more advanced Scala concepts that will be particularly helpful for anyone writing their own libraries and APIs in Scala.