Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Scala Advanced, Part 2 - Best Practices, Async, Serializing
Rating: 4.5 out of 5(230 ratings)
2,942 students

Scala Advanced, Part 2 - Best Practices, Async, Serializing

Idioms and Patterns, Dependency Injection, XML, JSON, Custom Extractors and Asynchronous Programming with Futures
Created byDick Wall
Last updated 3/2023
English

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

Course content

6 sections121 lectures5h 42m total length
  • Introduction0:20

    Set up your environment for the Scala advanced course, download the exercises and support materials, and get ready to follow along, try the examples, and complete the exercises.

  • Agenda1:39

    Prepare your Scala Part 2 workspace by installing a JDK (8+), using Oracle JDK for compatibility, and setting up SBT plus IntelliJ IDEA Community Edition, then import and unpack exercises.

  • Setting up the Java JDK1:26

    Verify you have Java 8 or 9 installed as a JDK by running javac -version; if missing, download Java SE from Oracle and use the Linux PPA on Ubuntu.

  • Setting up Scala1:22

    Install skarner, download intelligence or download sbt, and the standalone scanner; on macOS unzip it and add the bin directory to your path, then verify by launching from the terminal.

  • Setting up SBT1:31

    Install sbt across Linux, Mac, or Windows from the official pages; use the terminal to run sbt and sbt version to verify a recent 1.x release with automatic downloads.

  • Setting up IntelliJ IDEA Community Edition1:20

    Install the IntelliJ IDEA community edition, enable the Scala plugin during the wizard, and skip the VI plugin unless you know what you're doing.

  • Checking the IntelliJ JDK Settings1:58

    Configure IntelliJ by setting the Project SDK in project defaults and structure, adding a new JDK on Mac if needed. Then import the Scala course zip with slides and exercises.

  • Download the Course Materials0:04
  • Unpack and Import the Course Materials6:28

    Unpack the advanced exercises, set up the SBT project, and import it into the IDE to run module tests, fix failing tests, and use runnable worksheets to experiment.

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)