Scala Advanced, Part 2 - Best Practices, Async, Serializing
What you'll learn
- Be aware of the latest best practices, patterns and idioms in Scala programming
- Save and load data into Scala, taking full advantage of the Scala type system to obtain rich, useful types
- Use Scala Futures to program asynchronously and reactively, and implement more parallelization and performance in your code
Requirements
- You should be a developer with day to day working experience of Scala
- It is recommended that you complete part 1 of the Escalate Advanced Scala course
- You may also wish to consider following parts 1-3 of the Escalate Applied Scala course if you have trouble following these concepts
- You will need a sufficiently powerful computer and to follow the included setup instructions to run the hands-on exercises
Description
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 2 provides advice on best practices and patterns drawn from many years of real-world experience in Scala programming. In addition, strategies for compile-time verified dependency injection are covered, then XML and JSON serialization and deserialization, the use of custom extractors for pattern matching, and finally the very popular and important topic of asynchronous programming using Scala Futures:
- Dependency Injection
- Idioms and Best Practice advice
- Patterns - Gang of Four
- Scala specific patterns
- XML literals and features
- JSON libraries and type-classes
- Custom extractors in pattern matching
- Futures
- Future functions and combinators
- Patterns with Futures
It is recommended that you complete Scala Advanced part 1 before taking this part. While not strictly necessary, we may assume knowledge from part 1 in some of the explanations that could be hard to follow unless you know the material.
Part 3 (following this) builds on the information in these first two parts of the advanced course and moves into more advanced functional programming topics, along with performance optimization and more.
Who this course is for:
- Scala developers looking to improve their skills, write libraries and APIs for others, and learn patterns and best practices
- Developers looking to work in an asynchronous way with Futures
- Scala programmers using JSON and/or XML (or other data serialization)
Instructor
Dick is a Scala Developer with over 12 years of Scala development experience, and over 10 years of Scala training experience. As well as consulting in Scala, Dick contributes to a number of open source Scala projects, libraries and tools, and is very active in the Scala developer community. He is also one of the Scalawags, a video podcast about the Scala language. He runs Escalate Software which provides Scala training services. Dick also won the inaugural Phil Bagwell Award for Service to the Scala Community, and managed the Scala Community Process in 2015 through 2016