Scala
Scala ist eine moderne, objektorientierte und funktionale Programmiersprache auf der Java-Laufzeitumgebung. Bekanntester Nutzer dürfte der Mikro-Blogging-Dienst Twitter sein, der seine hochperformante Nachrichtenverarbeitung via Scala realisiert. Mit Scala lässt sich klassisch imperativ programmieren, und die Applikationen haben Zugriff auf die gesamte Java-Klassenbibliothek. Gleichzeitig werden Entwicklern alle Möglichkeiten einer funktionalen Programmiersprache geboten, vor allem bei der Entwicklung von nebenläufigen Programmen, um hochperformante Anwendungen auf Multi-Core-Prozessoren zu realisieren. Teilnehmer des Scala-Seminars bekommen einen umfangreichen Einblick in die Sprache und die verfügbaren Standardbibliotheken. Spezielle Anwendungsfälle aus der parallelen und funktionalen Programmierung zeigen den Reiz der Sprache, den auch Java-Vater James Gosling mit den Worten ›Wenn ich eine andere Programmiersprache als Java wählen würde, wäre es Scala‹ lobt. Groovy-Erfinder James Strachan spannt den Bogen weiter: ›Wenn mir jemand 2003 das Scala-Buch von Martin Odersky, Lex Spoon und Bill Venners gezeigt hätte, hätte ich vermutlich nie Groovy entwickelt‹.
Inhalte des Seminars
Einstieg in Scala
- Entstehung und Philosophie von Scala
- Dokumentationen
- Scala-Installation, benötigte Java-Archive, Scala Interpreter
- Klassendeklaration, Objekt, Singleton
- Definitionen von Variablen, einfache Methoden schreiben, Parameter
- Literale, Ausdrücke, Tupel, Blöcke
- Kontrollstrukturen
- Entwicklungsumgebungen: Plugins für Eclipse und IntelliJ
Funktionale Programmierung mit Scala
- Theoretische Grundlagen
- Mutable versus Immutable
- Anweisungen sind Ausdrücke
- Statisches Typsystem von Scala
- Funktionen erster Ordnung und Funktionen höherer Ordnung
- Rekursion, geschachtelte Funktionen, anonyme Funktionen, Currying, teilweise angewandte Funktionen
- for-Ausdruck: Generatoren, Definitionen, Filter
- Fehlerbehandlung mit
scala.util.Try
- Scala und der Einfluss anderer Programmiersprachen
Fortgeschrittene objektorientierte Konzepte in Scala
- Objektmodell von Scala
- Typen in Scala: Wertetypen und Nicht-Wertetypen
- Klassen und Objekte, Überschreiben, dynamisches Binden, Polymorphie
- Typkonformität, Konvertierung
- Compilationseinheiten, Pakete, Imports
- Überladen von Operatoren, Operatoren sind Funktionen
- Sequenzen
- Abstraktionen, Vererbung vs. Traits, Mixins
- Generics und Varianz
- Pattern Matching von Case-Klassen
- Reguläre Ausdrücke
Scala-Bibliotheken
- Anbindung der Java-Standard-Bibliotheken und Scala-API
Predef
-Objekt- Implicits und Rich-Wrapper
- String-Klasse und String-Interpolation
- Dynamic-Klasse
- Makros und Reflection
- Kollektionen: Set, Map, List
- Listen im Detail, funktionale Operationen auf Listen
- XML-Literale, XML-Ausdrücke, XML-Pattern und XML-Verarbeitung
Parallele Programmierung mit Scala
- Herausforderungen bei der parallelen Programmierung
- Parallel Collections
- Aktoren und Nachrichtenaustausch
- Asynchrone und synchrone Nachrichten
- Timeouts
- Spezialisierung von Aktoren
- Aktoren und Threads
Weiterführende Themen
- Performance
- Testen von Scala-Applikationen
- Scala-API mit
scaladoc
- Web-Framework mit Play2 sowie Servlets
- Datenbankanbindung mit Slick
- Clustering mit Akka
Termine / Kontakt
Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.
Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).
Die Fakten
- Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Software-Entwickler
- Vorkenntnisse: Gute Programmiererfahrung in einer objektorientierten Programmiersprache, bevorzugt Java
- Seminar-Software: Standardmäßig basiert der Kurs auf der letzten Version von Scala, zurzeit Scala 3.4.