Top Banner
Clean Code Challenge (Oliver Böhm) New Features in JDK 9 and 10 (Simon Ritter) GDRP / DSGVO in 20 Folien (Philipp Krenn) ML: Faszination und Realität (Jonas Grundler) Ist das Softwarearchitektur oder kann das weg? (Johannes Dienst) Pecha-Kucha- Session
107

Pecha-Kucha- Session - java-forum-stuttgart.de · 78 Kosten Klassisch vs ML Kosten Klassisch • Entwickler, die Regeln programmieren • Experten, die Zusammenhänge erforschen •

Sep 26, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Clean Code Challenge (Oliver Böhm)New Features in JDK 9 and 10 (Simon Ritter)

    GDRP / DSGVO in 20 Folien (Philipp Krenn)ML: Faszination und Realität (Jonas Grundler)

    Ist das Softwarearchitektur oder kann das weg? (Johannes Dienst)

    Pecha-Kucha-Session

  • Clean CodeChallenge(Oliver Böhm)

  • Clean Code Challenge

    [email protected]

    CLEAN_CODE_CHALLENGE

    function unspiral (i, j) { const n = Math.max(Math.abs(i), Math.abs(j)) return 4*n*n+(j>i?-1:1)*(2*n-i-j)}

    *** [email protected]

  • Clean Code Challengefunction unspiral (i, j) { const n = Math.max(Math.abs(i), Math.abs(j)) return 4*n*n+(j>i?-1:1)*(2*n-i-j)}

    i,j -3 -2 -1 0 1 2 3-3 48 25 26 27 28 29 30-2 47 24 9 10 11 12 31-1 46 23 8 1 2 13 320 45 22 7 0 3 14 331 44 21 6 5 4 15 342 43 20 19 18 17 16 353 42 41 40 39 38 37 36

  • 5

  • 6https://www.softwerkskammer.org/groups/stuttgart

  • 7https://www.meetup.com/de-DE/JUGStuttgart/polls/1248352/

  • 8

    WTF

    WTF

    WTFWhowWTFWTF

    https://www.pexels.com/photo/black-and-white-decision-doors-opportunity-277017/https://www.pexels.com/photo/black-and-white-decision-doors-opportunity-277017/

  • 9

  • 10https://www.pexels.com/de/foto/armband-baby-hand-haut-266013/https://www.pexels.com/de/foto/armband-baby-hand-haut-266013/

  • 110. Grad

    1. Grad

    2. Grad

    3. Grad

    4. Grad

    5. Grad

    6. Grad

  • 12https://www.pexels.com/photo/bald-blur-boy-buddhism-236302/https://www.pexels.com/photo/bald-blur-boy-buddhism-236302/

  • 13https://www.flickr.com/photos/j_ortner/40723908515/

  • 14https://www.flickr.com/photos/joiseyshowaa/8150681666/https://www.flickr.com/photos/joiseyshowaa/8150681666/

  • 15

    PairProgramming

  • 16https://www.flickr.com/photos/telwink/3797070188/

  • 17

    Wo bleibt der Test?

  • 18

    Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher.(Albert Einstein)

    https://www.pexels.com/photo/pencil-on-white-paper-159752/

  • 19https://www.pexels.com/de/foto/menschen-festival-sitzung-orange-50709/https://www.pexels.com/de/foto/menschen-festival-sitzung-orange-50709/

  • 20https://www.pexels.com/de/foto/architektur-ausserorts-baume-berge-910368/https://www.pexels.com/de/foto/architektur-ausserorts-baume-berge-910368/

  • 21

    WTF

    Whow WTFOmm

    https://www.pexels.com/photo/black-and-white-decision-doors-opportunity-277017/https://www.pexels.com/photo/black-and-white-decision-doors-opportunity-277017/

  • 22

    CLEAN_CODE_CHALLENGE

    public void unWTF (Code bad) { S19: practice(); practice(); practice(); goto S19;}

    *** [email protected]

  • New Features inJDK 9 and 10

    (Simon Ritter)

  • © Copyright Azul Systems 2018

    © Copyright Azul Systems 2015

    @speakjavaazul.com

    New Features InJDK 9 and JDK 10

    Simon RitterDeputy CTO, Azul Systems

    24

  • © Copyright Azul Systems 2018

    JDK 9: Java Platform Modularity The core Java libraries are now a set of modules

    – 97 modules 28 Java SE 8 JavaFX 59 JDK 2 Oracle

    No more rt.jar or tools.jar

    25

  • © Copyright Azul Systems 2018

    JDK 9: Internal API Encapsulation Most internal APIs now encapsulated

    – Override with --illegal-access --add-exports --add-opens

    JEP 260 enables access to some via jdk.unsupported– sun.misc.Unsafe

    26

  • © Copyright Azul Systems 2018

    JDK 9: jlink

    27

    Modular run-time image

    …confbin

    jlink

    lib

  • © Copyright Azul Systems 2018

    JDK 9: Collection Factory Methods

    28

    Set set = new HashSet();set.add("a");set.add("b");set.add("c");set = Collections.unmodifiableSet(set);

    Set set = Set.of("a", "b", "c");

    Old

    New

  • © Copyright Azul Systems 2018

    JDK 9: Stream Enhancements dropWhile() and takeWhile()

    – Like skip() and limit()– Uses Predicate rather than fixed value

    29

  • © Copyright Azul Systems 2018

    JDK 9: jshell Read-Eval-Print Loop

    30

  • © Copyright Azul Systems 2018

    JDK 9: Small Language Changes No more single underscore as a variable name

    Private methods in interfaces

    Effectively final variables in try-with-resources

    31

  • © Copyright Azul Systems 2018

    JDK 9: Variable Handles Replacement for parts of sun.misc.Unsafe

    VarHandle– compareAndExchange(), compareAndSet()– getAndAdd(), getAndSet()– acquireFence(), releaseFence()

    32

  • © Copyright Azul Systems 2018

    JDK 9: AOT Compilation Experimental feature

    Only java.base at the moment

    Faster start-up, no interpreted mode– Platform specific

    33

  • © Copyright Azul Systems 2018

    JDK 10: Local Variable Type Inference

    Java gets var!

    34

    var list = new ArrayList(); // infers ArrayListvar stream = list.stream(); // infers Stream

  • © Copyright Azul Systems 2018

    JDK 10: Application Class Data Sharing Share application classes between JVMs

    – Reduces resources used

    -XX:+UseAppCDS -XX:SharedArchiveFile=archive.jsa

    35

  • © Copyright Azul Systems 2018

    JDK 10: Experimental JIT Extend use of Graal to JIT compilation

    – From AOT

    Part of Project Metropolis

    -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler

    36

  • © Copyright Azul Systems 2018

    JDK 10: Alternative Heap Devices Some Non-Volatile RAM now as fast as DRAM

    -XX:AllocateHeapAt=

    37

  • © Copyright Azul Systems 2018

    JDK 10: New Collections APIs– Create unmodifiable copies of collections

    List.copyOf(Collection) Set.copyOf(Collection) Map.copyOf(Collection)

    38

  • © Copyright Azul Systems 2018

    JDK 10: New Collectors For Streams Collectors

    – toUnmodifiableList– toUnmodifiableMap– toUnmodifiableSet

    39

  • © Copyright Azul Systems 2018

    JDK 10: Container Support JVM now properly CGroup aware

    Initial values correctly calculated– Heap sizing– Thread pooling

    40

  • © Copyright Azul Systems 2018

    JDK Release Cadence New JDK release every six months

    – No more waiting years

    May include features that break compatibility

    More agile development

    41

  • © Copyright Azul Systems 2018

    JDK Updates Oracle Long Term Support Release (LTS)

    – Every three years– JDK 8, JDK 11, JDK 17...

    Not free for commercial use

    Only six-months for OpenJDK binaries

    42

  • © Copyright Azul Systems 2018

    Zulu JDK Azul build of OpenJDK

    – Passes all TCK tests

    Free!

    Commercial support if you want it

    43

    www.azul.com/downloads/zulu

  • GDRP / DSGVOin 20 Folien

    (Philipp Krenn)

  • ML:Faszination und

    Realität(Jonas Grundler)

  • ML: Faszination

    [email protected]: [email protected]

    …und Realität

    powered by

  • 67

    Bald lernt sie zu denken.

    Eine Maschine, die heute lernt, lernt morgen doppelt so schnell.

  • 68

    … übernimmt unsere Arbeit,

    unser Denken,unsere Philosophie,

    Faszination Machine Learning

    steckt noch Arbeit dahinter! In Realität

  • 69

    Einiges ist schon machbar – mit wirtschaftlichem Aufwand, zuhause und produktiv:• Deep Video Portraits• Spracherkennung• Videospiel-Gegner• Bildstabilisatoren• …

  • 70

    Chat-Bots beantworten Fragen, stochern aber noch oft im Nebel.Trotzdem werden sie schon wirtschaftlich entwickelt und eingesetzt.

  • 71

    Aber meine Tochter verstand sie anfangs nicht. Mittlerweile aber schon. Und kann Hörbücher

    abspielen.

  • Extract Features

    Train

    Labels

    TrainedModel

    Evaluate

    Predict

    Black Box Naive Bayes SVMs Deep Learning

    NeueDaten

    Labels

    Extract Features

    Realität: Es gibt konkrete VorgehensweisenBeispiel Supervised Learning

    Roh-daten

    Roh-daten

    Roh-daten

    Roh-daten

    Roh-daten

  • Extract Features

    Train

    Labels

    TrainedModel

    Evaluate

    Predict

    Black Box Naive Bayes SVMs Deep Learning

    NeueDaten

    Labels

    Extract Features

    Realität: Es gibt konkrete VorgehensweisenBeispiel Supervised Learning

    Roh-daten

    Roh-daten

    Roh-daten

    Roh-daten

    Roh-daten

  • 74

    Problem: Gefahren bspw. auf Oktoberfest erkennen

  • 75

    Klassisch: Bekannte Gefahren werden erkannt

    … dazu muss die Erkennung aber

    auch „programmiert“ werden: If-then-else.

  • 76

    ML:

    kan

    n äh

    nlic

    he

    Situ

    atio

    nen

    erke

    nnen

    .

  • 77

    Kosten Klassisch vs MLKosten Klassisch• Entwickler, die Regeln programmieren• Experten, die Zusammenhänge erforschen• Experten, die Strukturen erkennen und Algorithmen finden €

  • 78

    Kosten Klassisch vs MLKosten Klassisch• Entwickler, die Regeln programmieren• Experten, die Zusammenhänge erforschen• Experten, die Strukturen erkennen und Algorithmen finden

    Kosten ML• Menschen (bspw. crowd), die Beispiele finden und generieren

    – Positivbeispiele und Negativbeispiele

    • Maschinen, die lernen• Menschen (bspw. crowd) validieren €

  • 79

  • 80

    Klassisch vs ML in Scatterblogs: Das ist neu!

    • Unüberwachtes Lernen erkennt Ereignisse

    • Streaming X-Means lernt dynamischesClustering von Ereignissen.

    • Klassische Methoden scheiternbei 15 Mio Tweets/Tag

  • 81

    Führerscheinerkennung

    • Fotografischer Nachweis eines Führerscheins

    • Bisher war für Erkennung ein Mensch nötig.

  • 82

    Bildverständnis Klassifikation FührerscheinJa/Nein

    Vortrainierte Netze können zeitauf- wändiges Lernen reduzieren.

    Einsparung menschlicher Arbeitszeit

  • 83

    …neuro al rNetze)

    … genau d s hilft,Ist ab r auch hnderlich.

    Unsr Auge(unter demGeschtspnkt…

    … ist vortrainrt undvoreingnmmen …

  • 84

    • Die meisten Data Scientists verwenden tatsächlich Java Python.

    • Eine Integration mit Hadoop, Kafka, …. und das ganze in der Cloud ist möglich. MIT JAVA.

  • 85

    ML: Das ist

    Faszination

    …und Realität! [email protected]: [email protected]

  • Hinweis:Für externe Präsentationen bitte immer eine Titelfolie mit der Ressort-Farbe verwenden.

    Ist das Architektur oder kann das weg?Johannes Dienst

  • Struktur ist wichtig

    87 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst https://resources.sei.cmu.edu/asset_files/FactSheet/2010_010_001_513810.pdf

  • Wie es früher war

    88 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Irrglaube

    89 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Wie es sein sollte

    90 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Einfluss

    91 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

    FunktionaleAnforderungen

  • Die Wahrheit liegt im Wein Code?

    92 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Nicht funktionale Anforderungen

    93 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

    Functional

    SuitabilitySoftware Product

    Quality

    Usability

    Security

    Performance

    Efficiency

    Maintainability

    Compatibility Reliability

    Portability

  • Randbedingungen

    94 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Angemessenheit

    95 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Risikomanagement

    96 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Anforderungsflüsterer

    97 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Szenariobasierte Anforderungen

    98 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

    Mess-kriteriumArtefakt

    Umgebung

    Quelle

    Stimulus Antwort

  • Architekturvision

    99 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Systemkontext am wichtigsten

    100 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Entscheidungen, Entscheidungen, Entscheidungen

    101 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

    „Erklärungen gibt es und hat es seit ewigen Zeiten gegeben; stets weiß man für jedes menschliche Problem eine Lösung — sauber, einleuchtend, und falsch.“

    Henry Louis Mencken

  • Ich sehe Muster! Ganz viele Muster!

    102 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Soft Skills

    103 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Soft Skills

    104 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Das wichtigste Ziel

    105 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Hinweis:„Vielen Dank für Ihre Aufmerksamkeit“ kann auch durch ein anderes Abschlusszitat oder eine Botschaft ersetzt werden.

    „Software architecture is what software architects do“Kent Beck

    DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

  • Clean Code Challenge(Oliver Böhm)

    New Fetures in JDK 9 and 10(Simon Ritter)

    GDRP / DSGVO in 20 Folien(Phillip Krenn)

    ML: Faszination und Realität(Jonas Grundler)

    Ist das Softwarearchitektur oder kann das weg?(Johannes Dienst)

    ???

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24JDK 9: Java Platform ModularityJDK 9: Internal API EncapsulationJDK 9: jlinkJDK 9: Collection Factory MethodsJDK 9: Stream EnhancementsJDK 9: jshellJDK 9: Small Language ChangesJDK 9: Variable HandlesJDK 9: AOT CompilationJDK 10: Local Variable Type InferenceJDK 10: Application Class Data SharingJDK 10: Experimental JITJDK 10: Alternative Heap DevicesJDK 10: New Collections APIsJDK 10: New Collectors For StreamsJDK 10: Container SupportJDK Release CadenceJDK UpdatesZulu JDKSlide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60Slide 61Slide 62Slide 63Slide 64Slide 65Slide 66Slide 67page4page5page6page7Slide 72Slide 73Problem: Gefahren bspw. auf Oktoberfest erkennenKlassisch: Bekannte Gefahren werden erkanntML: kann ähnliche Situationen erkennen.Kosten Klassisch vs ML_clipboard0Kosten Klassisch vs MLSlide21Klassisch vs ML in Scatterblogs: Das ist neu!Führerscheinerkennungpage16Slide29page15Slide 85Slide 86Struktur ist wichtigWie es früher warIrrglaubeWie es sein sollteEinflussDie Wahrheit liegt im Wein Code?Nicht funktionale AnforderungenRandbedingungenAngemessenheitRisikomanagementAnforderungsflüstererSzenariobasierte AnforderungenArchitekturvisionSystemkontext am wichtigstenEntscheidungen, Entscheidungen, EntscheidungenIch sehe Muster! Ganz viele Muster!Soft SkillsSoft SkillsDas wichtigste ZielSlide 106Slide 107