- Installation and Configuration of Scala Development Tools
- Installation of Development Tools
- Project Setup with sbt,
- sbt Basics
- Using VS Code with Metals as Editor/IDE
- Scala Interactive
- Scala REPL
- Scala Worksheets
- Scala Design Principles
- Object Orientation
- Funtional Features
- Immutability
- Type Safety
- Language Syntax and Standard Library
- Expressions
- Operators
- Control Structures
- var, val, lazy val, def
- Classes, Traits,
- Objects, Companion Objects
- Packages, Imports
- Tuples
- Case Classes
- Pattern Matching
- Types
- Type Hierarchy
- Type Inference
- Type Aliases
- Type Parameters
- Container Types
- Error Handling
- Exceptions
- try ... catch
- Try
- Error Handling: Best Practices
- flatMap and for-comprehensions
- filter, map, flatMap, flatten
- for-comprehensions
- Asynchronous Programming
- Threads
- ExecutionContext
- Future
- Files and IO
- Java IO in Scala
- scala.io.Source
- Resource Management
- try ... finally
- scala.util.Using
In diesem Kurs ist die Einrichtung der Scala-Entwicklungstools Teil des Kursinhalts. Wir beginnen mit einem Docker-Container mit Ubuntu-Linux auf jedem Teilnehmer-Rechner. In dem Entwicklungscontainer sind ein JDK und einige Entwicklungstools wie z.B. git, curl und zip, jedoch keine Scala-Tools vorinstalliert.
Damit haben alle Kurs-Teilnehmer dieselben System-Voraussetzungen innerhalb des Containers. In diesen DockerContainer installieren wir alle Tools, die für die Software-Entwicklung mit Scala erforderlich sind mit Coursier:
- Coursier: ein Dependency-Manager und Artefact-Fetcher für Scala
- Scala REPL
- Scala Compiler
- sbt: das meist genutzte Build-Tool für Scala
- scalafmt: Formatierer für Scala-Code
Ist die Arbeitsumgebung für Scala installiert und erläutert, werden die oben genannten Seminar-Inhalte vermittelt.
Dabei entwicklen wir mit Visual Studio Code Remote Development die Code-Beispiele im Docker-Container.
Die Softwareentwicklung im Kurs erfolgt mit der neuesten Version von Scala 2 oder Scala 3 (je nach Vorgabe).