Artwork

Inhalt bereitgestellt von Sven Wiegand and Benjamin Hagemeister. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Sven Wiegand and Benjamin Hagemeister oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.
Player FM - Podcast-App
Gehen Sie mit der App Player FM offline!

SP10/16: Ich weiß was Du letzten Sommer getan hast

1:16:50
 
Teilen
 

Manage episode 163480801 series 1206977
Inhalt bereitgestellt von Sven Wiegand and Benjamin Hagemeister. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Sven Wiegand and Benjamin Hagemeister oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.

Wir suchen einen Scala-Entwickler

Willst Du Scala endlich auch beruflich einsetzen? Dann komm zu uns. Für unser Berliner Team bei der Beta System IAM Software AG suchen wir einen Scala-Entwickler bzw. eine Scala-Entwicklerin. In einem sechsköpfigen Scrum-Team entwickelst Du unsere neue Web-Basierte IAM-Suite, vollständig in Scala.

Auch als Quereinsteiger aus der Java-Welt bist Du herzlich willkommen.

Bewirb Dich jetzt (gib bei der Bewerbung mit an, dass Du über die Scala Profis auf die Stelle aufmerksam geworden bist).

Scala 2.12-RC1 verfügbar

Der gemäß ursprünglicher Planung für Ende Mai vorgesehene Release Candidate 1 wurde nun am 6. September 2016 released.

Im Zentrum von Scala 2.12 steht die bessere Integration mit Java 8. Das bedeutet auch, dass mit Scala 2.12 gebaute Anwendungen eine Java 8 VM voraussetzen.

Ein Release-Termin für 2.12.0 ist uns aktuell nicht bekannt.

Links

The Scala Center Advisory Board

Über das Advisory Board

  • Spricht Empfehlungen an das Scala Center aus, woran es arbeiten soll.
  • Es ist die Aufgabe des Scala Centers, diese Empfehlungen zu bearbeiten.
  • Das Board hat sieben abstimmende Mitglieder:
    • Vertreter der sechs (wenn ich das richtig verstehe inzwischen 9) Sponsoren: Artima, 47 Degrees, IBM, Lightbend, Nitro, SAP, Tapad, Twitter, Verizone
    • Bill Venners als Vertreter der Community
  • Heather Mills als »Executive Director« des Scala Centers, um über die Aktivitäten des Scala Centers zu berichten
  • Martin Odersky als technischer Berater des Boards
  • Das Board trifft sich viermal im Jahr

Wie funktioniert das Board

  • Ziel jedes Meetings ist es Empfehlungen auszusprechen, woran das Scala Center in den nächsten drei Monaten arbeiten soll
  • Entscheidend ist, dass die Empfehlungen des Boards nicht bindend sind
  • Heather und Martin sitzen im Board, um das Board über die Machbarkeit/Sinnhaftigkeit von Empfehlungen vorab zu beraten
  • Jedes der sieben Board-Mitglieder kann Vorschläge einreichen
  • Die sieben Mitglieder können über die Vorschläge abstimmen um so daraus Empfehlungen für das Scala Center zu generieren.
  • Die Vorschläge und Protokolle der Meetings werden im Github repository veröffentlicht.

Erstes Meeting vom 9. Mai 2016

Dort wurden vier Empfehlungen ausgesprochen:

  1. Klärung des Scala-Führungs-Prozesses inklusive des SIP/SLIP-Prozesses
  2. Definition eines Migrationspfades von Scala 2.x nach Dotty
  3. Schaffung einer »new unpaid publicity chair role« für das Scala Center und
  4. Fortsetzung der Unterstützung für Scala.js

Protokoll des ersten Meetings

Zweites Meeting vom 9. August

Folgende Empfehlungen wurden beschlossen:

  1. Native Execution of Scala/Spark via LLVM
  2. Compile Time Check of Serializability

Protokoll des zweiten Meetings

Links

ScalaCenter Meetings

Neuer SIP-Prozess

Im neuen Scala Improvement Process wird jeder SIP einem Reviewer zugeordnet, der diesen dem SIP-Komitee präsentiert.

Status aus Juli- und August-Meetings

Im Prozess sind:

Ein SIP wurde auf Wunsch des Autors zurückgestellt:

Zwei weitere wurden abgelehnt:

Links

Multiversal Equality for Scala

Aktuelles Problem

Equality-Operator == ist nicht typsicher. So kann man versehentlich folgendes schreiben:

val a = "hello" val b = Some("hello") a == b 

Das Ergebnis wird immer false sein, da die Typen nicht übereinstimmen.

Potentielle Lösung

Andere Sprachen bietet dazu den ===-Operator. Odersky möchte aber möglichst keinen neuen Operator einführen, sondern es bei dem ==-Operator belassen. Dabei ist allerdings das Problem der Abwärtskompatibilität zu berücksichtigen.

Martin Odersky hat dafür einen Language Enhancement Proposal erstellt, den er in einem Blog-Eintrag inklusive möglichem Lösungsweg beschreibt.

Links

Statische Code-Analyse

Compiler Option

Der Scala Compiler bietet selbst einige Optionen, die für zusätzliche Warnungen und sogar Fehler sorgen.

Die Optionen -Xlint -Ywarn-dead-code -Ywarn-numeric-widen -Yno-adapted-args -Ywarn-value-discard führen zu 323 Warnungen und 13 Fehlern!
Die Fehler entstehen, weil die Option -Yno-adapted-args die Konvertierung von a, b nach (a, b) unterbindet.

Externe Tools

  • Linter
    • Typ: Compiler Plugin (muss gegebenenfalls einzeln zu den Sub-Projekten hinzugefügt werden)
    • IDE-Integration: Keine
    • Konfiguration: scalacOptions
    • Ausnahmen:
      • Einzelne Zeilen über Kommentare (Komplett oder für einzelne Regeln)
    • Ausführen: Implizit bei compile
    • Ausgabe: Konsole
    • Warnungen: 106
  • WartRemover
    • Typ: SBT Plugin
    • IDE-Integration: Keine
    • Konfiguration: SBT
    • Ausnahmen:
      • Einzelne Dateien über SBT Einstellungen
      • Klassen oder Methoden über die Annotation java.lang.SuppressWarnings (Komplett oder für einzelne Regeln)
    • Ausführen: Implizit bei compile
    • Ausgabe: Konsole
    • Warnungen: 4332
  • Scapegoat
    Nur Scala 2.11!
    • Typ: SBT Plugin
    • IDE-Integration: Keine
    • Konfiguration: SBT
    • Ausnahmen:
      • Einzelne Dateien über SBT Einstellungen
      • Klassen oder Methoden über die Annotation java.lang.SuppressWarnings (Komplett oder für einzelne Regeln)
    • Ausführen: Explizit über scapegoat
    • Ausgabe: Konsole, HTML, XML
  • Scalastyle
    Wird im Coursera Kurs Functional Programming Principles in Scala für die Auswertung der Übungen mit verwendet.
    • Typ: SBT Plugin
    • IDE-Integration:
      • Eclipse Plugin
      • Inspection für IntelliJ IDEA
    • Konfiguration:XML Datei (kann über ein SBT Kommando generiert werden)
    • Ausnahmen:
      • Einzelne Zeilen und Code-Blöcke über Kommentare (Komplett oder für einzelne Regeln)
    • Ausführen: Explizit über scalastyle
    • Ausgabe: Konsole, XML im Checkstyle Format
    • Warnungen: 1097

Interessante Warnungen

  • case classes must be final siehe stackoverflow
  • Inferred type containing Any
  • Descendants of a sealed type must be final or sealed
  • Merge these two map operations
  • Verwendung von
    • var
    • null
    • Option.get

Links

ScalaTest 3.0: What’s new

Kürzlich wurde ScalaTest 3.0.0 freigegeben. In dem Artikel What’s new in ScalaTest 3.0 werden Hauptneuerungen der Version aufgeführt:

  • Vollständige Unterstützung für Scala.js
  • Asynchrone Varianten zum Testen von Future (siehe auch Episode SP06/16 zu den ScalaDays)
  • Erweiterte Matchers mit zusätzlichen Match-Words um Container zu testen: Einleitung durch z.B. must contain oneElementOf, noElementOf, atLeastOneElementOf, atMostOneElementOf, allElementsOf and inOrderElementsOf.
  • Assertions und Macher liefern als Ergebnis jetzt ein Objekt vom Typ Assertion an Stelle von Unit.

Link

ScalaFiddle

ScalaFiddle ist ein Seite zum testen und teilen von Scala Code, also JsFiddle nur für Scala. Ein ScalaFiddle kann per ›

 

Links

play-swagger

Swagger ist eine Sprache zur Spezifikation von REST-Schnittstellen. play-swagger kann aus dieser Spezifikation folgende Play-Artefakte generieren:

  • Routes file
  • Generators of random test data
  • Wrappers for Play route files to convert semantics from http-related to domain-related (controller_base)
  • Skeletons for the domain-driven controller implementation
  • Model classes and validation rules
  • Unit tests for invalid and valid parameter sets
  • Security extractors (if needed)
  • Skeletons for custom deserializers (if needed)

Links

Scala Exercises

Scala Exercises ist ein Open-Source Projekt von 47 Degrees. Auf der Web-Seite gibt es Einführungen mit Übungen zu verschiedenen Scala Bibliotheken.
Der Code für die verschiedenen Übungen liegt auf GitHub.

Momentan gibt es Übungen zu den folgenden Themen:

Es gibt eine Anleitung zum Hinzufügen von neuen Themen, wenn die Episode online ist sind es also unter Umständen noch mehr.

Links

Gib uns Dein Feedback als Kommentar auf unserer Web-Site, via Twitter oder Google+.

Kauf uns einen Kaffee

Kapitel

  1. Intro (00:00:00.000)
  2. Wir suchen einen Scala-Entwickler (00:02:19.309)
  3. Scala 2.12-RC1 released (00:03:56.024)
  4. The Scala Center Advisory Board (00:07:40.696)
  5. ScalaCenter Meetings (00:18:49.080)
  6. Multiversal Equality for Scala (00:30:54.765)
  7. Statische Code-Analyse (00:35:57.251)
  8. ScalaTest 3.0: What’s new (01:04:16.003)
  9. ScalaFiddle (01:06:57.624)
  10. play-swagger (01:09:31.907)
  11. Scala Excercises (01:13:09.411)
  12. Outro (01:14:52.408)

Lizenz

Creative Commons Lizenzvertrag
Scala Profis von Benjamin Hagemeister & Sven Wiegand ist lizenziert unter einer Creative Commons Namensnennung — Keine Bearbeitungen 4.0 International Lizenz.

Über diese Lizenz hinausgehende Erlaubnisse kannst Du unter http://scalaprofis.de erhalten.

Titelsong basierend auf Wish You Were Here von THE.MADPIX.PROJECT lizensiert unter Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0).

  continue reading

Kapitel

1. Intro (00:00:00)

2. Wir suchen einen Scala-Entwickler (00:02:19)

3. Scala 2.12-RC1 released (00:03:56)

4. The Scala Center Advisory Board (00:07:40)

5. ScalaCenter Meetings (00:18:49)

6. Multiversal Equality for Scala (00:30:54)

7. Statische Code-Analyse (00:35:57)

8. ScalaTest 3.0: What's new (01:04:16)

9. ScalaFiddle (01:06:57)

10. play-swagger (01:09:31)

11. Scala Excercises (01:13:09)

12. Outro (01:14:52)

15 Episoden

Artwork
iconTeilen
 
Manage episode 163480801 series 1206977
Inhalt bereitgestellt von Sven Wiegand and Benjamin Hagemeister. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Sven Wiegand and Benjamin Hagemeister oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.

Wir suchen einen Scala-Entwickler

Willst Du Scala endlich auch beruflich einsetzen? Dann komm zu uns. Für unser Berliner Team bei der Beta System IAM Software AG suchen wir einen Scala-Entwickler bzw. eine Scala-Entwicklerin. In einem sechsköpfigen Scrum-Team entwickelst Du unsere neue Web-Basierte IAM-Suite, vollständig in Scala.

Auch als Quereinsteiger aus der Java-Welt bist Du herzlich willkommen.

Bewirb Dich jetzt (gib bei der Bewerbung mit an, dass Du über die Scala Profis auf die Stelle aufmerksam geworden bist).

Scala 2.12-RC1 verfügbar

Der gemäß ursprünglicher Planung für Ende Mai vorgesehene Release Candidate 1 wurde nun am 6. September 2016 released.

Im Zentrum von Scala 2.12 steht die bessere Integration mit Java 8. Das bedeutet auch, dass mit Scala 2.12 gebaute Anwendungen eine Java 8 VM voraussetzen.

Ein Release-Termin für 2.12.0 ist uns aktuell nicht bekannt.

Links

The Scala Center Advisory Board

Über das Advisory Board

  • Spricht Empfehlungen an das Scala Center aus, woran es arbeiten soll.
  • Es ist die Aufgabe des Scala Centers, diese Empfehlungen zu bearbeiten.
  • Das Board hat sieben abstimmende Mitglieder:
    • Vertreter der sechs (wenn ich das richtig verstehe inzwischen 9) Sponsoren: Artima, 47 Degrees, IBM, Lightbend, Nitro, SAP, Tapad, Twitter, Verizone
    • Bill Venners als Vertreter der Community
  • Heather Mills als »Executive Director« des Scala Centers, um über die Aktivitäten des Scala Centers zu berichten
  • Martin Odersky als technischer Berater des Boards
  • Das Board trifft sich viermal im Jahr

Wie funktioniert das Board

  • Ziel jedes Meetings ist es Empfehlungen auszusprechen, woran das Scala Center in den nächsten drei Monaten arbeiten soll
  • Entscheidend ist, dass die Empfehlungen des Boards nicht bindend sind
  • Heather und Martin sitzen im Board, um das Board über die Machbarkeit/Sinnhaftigkeit von Empfehlungen vorab zu beraten
  • Jedes der sieben Board-Mitglieder kann Vorschläge einreichen
  • Die sieben Mitglieder können über die Vorschläge abstimmen um so daraus Empfehlungen für das Scala Center zu generieren.
  • Die Vorschläge und Protokolle der Meetings werden im Github repository veröffentlicht.

Erstes Meeting vom 9. Mai 2016

Dort wurden vier Empfehlungen ausgesprochen:

  1. Klärung des Scala-Führungs-Prozesses inklusive des SIP/SLIP-Prozesses
  2. Definition eines Migrationspfades von Scala 2.x nach Dotty
  3. Schaffung einer »new unpaid publicity chair role« für das Scala Center und
  4. Fortsetzung der Unterstützung für Scala.js

Protokoll des ersten Meetings

Zweites Meeting vom 9. August

Folgende Empfehlungen wurden beschlossen:

  1. Native Execution of Scala/Spark via LLVM
  2. Compile Time Check of Serializability

Protokoll des zweiten Meetings

Links

ScalaCenter Meetings

Neuer SIP-Prozess

Im neuen Scala Improvement Process wird jeder SIP einem Reviewer zugeordnet, der diesen dem SIP-Komitee präsentiert.

Status aus Juli- und August-Meetings

Im Prozess sind:

Ein SIP wurde auf Wunsch des Autors zurückgestellt:

Zwei weitere wurden abgelehnt:

Links

Multiversal Equality for Scala

Aktuelles Problem

Equality-Operator == ist nicht typsicher. So kann man versehentlich folgendes schreiben:

val a = "hello" val b = Some("hello") a == b 

Das Ergebnis wird immer false sein, da die Typen nicht übereinstimmen.

Potentielle Lösung

Andere Sprachen bietet dazu den ===-Operator. Odersky möchte aber möglichst keinen neuen Operator einführen, sondern es bei dem ==-Operator belassen. Dabei ist allerdings das Problem der Abwärtskompatibilität zu berücksichtigen.

Martin Odersky hat dafür einen Language Enhancement Proposal erstellt, den er in einem Blog-Eintrag inklusive möglichem Lösungsweg beschreibt.

Links

Statische Code-Analyse

Compiler Option

Der Scala Compiler bietet selbst einige Optionen, die für zusätzliche Warnungen und sogar Fehler sorgen.

Die Optionen -Xlint -Ywarn-dead-code -Ywarn-numeric-widen -Yno-adapted-args -Ywarn-value-discard führen zu 323 Warnungen und 13 Fehlern!
Die Fehler entstehen, weil die Option -Yno-adapted-args die Konvertierung von a, b nach (a, b) unterbindet.

Externe Tools

  • Linter
    • Typ: Compiler Plugin (muss gegebenenfalls einzeln zu den Sub-Projekten hinzugefügt werden)
    • IDE-Integration: Keine
    • Konfiguration: scalacOptions
    • Ausnahmen:
      • Einzelne Zeilen über Kommentare (Komplett oder für einzelne Regeln)
    • Ausführen: Implizit bei compile
    • Ausgabe: Konsole
    • Warnungen: 106
  • WartRemover
    • Typ: SBT Plugin
    • IDE-Integration: Keine
    • Konfiguration: SBT
    • Ausnahmen:
      • Einzelne Dateien über SBT Einstellungen
      • Klassen oder Methoden über die Annotation java.lang.SuppressWarnings (Komplett oder für einzelne Regeln)
    • Ausführen: Implizit bei compile
    • Ausgabe: Konsole
    • Warnungen: 4332
  • Scapegoat
    Nur Scala 2.11!
    • Typ: SBT Plugin
    • IDE-Integration: Keine
    • Konfiguration: SBT
    • Ausnahmen:
      • Einzelne Dateien über SBT Einstellungen
      • Klassen oder Methoden über die Annotation java.lang.SuppressWarnings (Komplett oder für einzelne Regeln)
    • Ausführen: Explizit über scapegoat
    • Ausgabe: Konsole, HTML, XML
  • Scalastyle
    Wird im Coursera Kurs Functional Programming Principles in Scala für die Auswertung der Übungen mit verwendet.
    • Typ: SBT Plugin
    • IDE-Integration:
      • Eclipse Plugin
      • Inspection für IntelliJ IDEA
    • Konfiguration:XML Datei (kann über ein SBT Kommando generiert werden)
    • Ausnahmen:
      • Einzelne Zeilen und Code-Blöcke über Kommentare (Komplett oder für einzelne Regeln)
    • Ausführen: Explizit über scalastyle
    • Ausgabe: Konsole, XML im Checkstyle Format
    • Warnungen: 1097

Interessante Warnungen

  • case classes must be final siehe stackoverflow
  • Inferred type containing Any
  • Descendants of a sealed type must be final or sealed
  • Merge these two map operations
  • Verwendung von
    • var
    • null
    • Option.get

Links

ScalaTest 3.0: What’s new

Kürzlich wurde ScalaTest 3.0.0 freigegeben. In dem Artikel What’s new in ScalaTest 3.0 werden Hauptneuerungen der Version aufgeführt:

  • Vollständige Unterstützung für Scala.js
  • Asynchrone Varianten zum Testen von Future (siehe auch Episode SP06/16 zu den ScalaDays)
  • Erweiterte Matchers mit zusätzlichen Match-Words um Container zu testen: Einleitung durch z.B. must contain oneElementOf, noElementOf, atLeastOneElementOf, atMostOneElementOf, allElementsOf and inOrderElementsOf.
  • Assertions und Macher liefern als Ergebnis jetzt ein Objekt vom Typ Assertion an Stelle von Unit.

Link

ScalaFiddle

ScalaFiddle ist ein Seite zum testen und teilen von Scala Code, also JsFiddle nur für Scala. Ein ScalaFiddle kann per ›

 

Links

play-swagger

Swagger ist eine Sprache zur Spezifikation von REST-Schnittstellen. play-swagger kann aus dieser Spezifikation folgende Play-Artefakte generieren:

  • Routes file
  • Generators of random test data
  • Wrappers for Play route files to convert semantics from http-related to domain-related (controller_base)
  • Skeletons for the domain-driven controller implementation
  • Model classes and validation rules
  • Unit tests for invalid and valid parameter sets
  • Security extractors (if needed)
  • Skeletons for custom deserializers (if needed)

Links

Scala Exercises

Scala Exercises ist ein Open-Source Projekt von 47 Degrees. Auf der Web-Seite gibt es Einführungen mit Übungen zu verschiedenen Scala Bibliotheken.
Der Code für die verschiedenen Übungen liegt auf GitHub.

Momentan gibt es Übungen zu den folgenden Themen:

Es gibt eine Anleitung zum Hinzufügen von neuen Themen, wenn die Episode online ist sind es also unter Umständen noch mehr.

Links

Gib uns Dein Feedback als Kommentar auf unserer Web-Site, via Twitter oder Google+.

Kauf uns einen Kaffee

Kapitel

  1. Intro (00:00:00.000)
  2. Wir suchen einen Scala-Entwickler (00:02:19.309)
  3. Scala 2.12-RC1 released (00:03:56.024)
  4. The Scala Center Advisory Board (00:07:40.696)
  5. ScalaCenter Meetings (00:18:49.080)
  6. Multiversal Equality for Scala (00:30:54.765)
  7. Statische Code-Analyse (00:35:57.251)
  8. ScalaTest 3.0: What’s new (01:04:16.003)
  9. ScalaFiddle (01:06:57.624)
  10. play-swagger (01:09:31.907)
  11. Scala Excercises (01:13:09.411)
  12. Outro (01:14:52.408)

Lizenz

Creative Commons Lizenzvertrag
Scala Profis von Benjamin Hagemeister & Sven Wiegand ist lizenziert unter einer Creative Commons Namensnennung — Keine Bearbeitungen 4.0 International Lizenz.

Über diese Lizenz hinausgehende Erlaubnisse kannst Du unter http://scalaprofis.de erhalten.

Titelsong basierend auf Wish You Were Here von THE.MADPIX.PROJECT lizensiert unter Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0).

  continue reading

Kapitel

1. Intro (00:00:00)

2. Wir suchen einen Scala-Entwickler (00:02:19)

3. Scala 2.12-RC1 released (00:03:56)

4. The Scala Center Advisory Board (00:07:40)

5. ScalaCenter Meetings (00:18:49)

6. Multiversal Equality for Scala (00:30:54)

7. Statische Code-Analyse (00:35:57)

8. ScalaTest 3.0: What's new (01:04:16)

9. ScalaFiddle (01:06:57)

10. play-swagger (01:09:31)

11. Scala Excercises (01:13:09)

12. Outro (01:14:52)

15 Episoden

Alle Folgen

×
 
Loading …

Willkommen auf Player FM!

Player FM scannt gerade das Web nach Podcasts mit hoher Qualität, die du genießen kannst. Es ist die beste Podcast-App und funktioniert auf Android, iPhone und im Web. Melde dich an, um Abos geräteübergreifend zu synchronisieren.

 

Kurzanleitung