Mutation Testing mit Stryker

Ihr schreibt Unit-Tests im Team? Natür­lich tut ihr das! Aber sind die Tests auch aus­re­ichend? Cov­er­age-Tools haben darauf eine Antwort. 

Lei­der sind Cov­er­age-Analy­sen aber oft unzure­ichend. Selb­st Test-Suites mit 100% code-cov­er­age überse­hen oft Fehler. Manche Test-Suites brin­gen in der Prax­is nur wenig Mehrwert.

Mit Muta­tion Test­ing kön­nt ihr die Qual­ität eur­er Tests selb­st prüfen! Stryk­er stellt eure Tests auf den Prüf­s­tand. Ihr erhal­tet eine real­is­tis­chere Aus­sage, wie gut eure Suite tat­säch­lich Fehler find­en kann und erfahrt, wie ihr sie verbessert. Das Werkzeug lässt sich mit wenig Aufwand in Pro­jekt und Pipeline zu inte­gri­eren und sorgt schnell für Ergebnisse!

Einstieg in die Funktionale Programmierung mit TypeScript und Remeda

Oft assozieren Entwick­lerin­nen und Entwick­ler Funk­tionale Pro­gram­mierung mit kom­plizierten akademis­chen Begrif­f­en. Das muss aber nicht sein! 

In diesem Talk lernt ihr, wie ihr mit ein­fachen Mit­teln große Effek­te erzie­len kön­nt. Ein paar Kniffe aus der Funk­tionalen Pro­gram­mierung genü­gen schon: Der Code wird les­bar­er und nerviges Debug­ging erhe­blich reduziert.

JavaScript und Type­Script bieten dazu einige Bib­lio­theken an, die den Ein­stieg erhe­blich erle­ichtern. Ins­beson­dere Reme­da kommt mit mod­er­nen Type­Script-Sup­port und stellt eine gut Wahl dar.

CSS Speed Run — von hop zu top an einem Tag

Seien wir mal ehrlich: Die meis­ten von uns hat­ten nie die Zeit sich inten­siv mit den grundle­gen­den Konzepten und Ideen von CSS zu beschäfti­gen — warum auch? Es gibt doch so tolle Bib­lio­theken wie Tail­wind, Boot­strap oder Mate­r­i­al Design, die uns vor­gaukeln als wären sie die Lösung aller gestal­ter­ischen Prob­leme im Fron­tend. Nur was nützt einem das aus­ge­fuch­stes Werkzeug mit zwei linken CSS Händen? 

Schluss damit, wir trainieren deine CSS Fer­tigkeit­en mit einem Speed Run durch die wichtig­sten Konzepte der Cas­cad­ing Style Sheets. Dieser Work­shop wird dir deinen Arbeit­sall­t­ag auf viel­er­lei Ebe­nen erle­ichtern: Sei es, dass du die CSS Hacks von Stack­Over­flow endlich ver­stehst, du dieses eine Fea­ture — für das deine Bib­lio­thek keine Lösung hat — endlich selb­st lösen kannst oder du grund­sät­zlich endlich Aus­rufe- statt Frageze­ichen beim The­ma CSS im Kopf hast.

Auf fol­gende The­men kannst du dich freuen

- Selek­toren und Kombinatoren
— Box-Mod­ell & Box-Sizing
— Die CSS Kaskade
— Nor­mal Doc­u­ment Flow and Dis­play Types
— Pseu­do-Ele­ments and Pseudo-Classes
— CSS Cus­tom Properties
— Flexbox
— Die Grund­la­gen des CSS Grid
— Tran­si­tions & Animationen

Ein Klagelied über falsche Vorstellungen und verschwendetes Potential — feat. MC Fachkräftemangel

Egal ob Arbeit­ge­ber oder Arbeit­nehmer, jed­er von uns ist direkt oder indi­rekt vom The­ma Fachkräfte­man­gel in der IT betrof­fen. Bei Unternehmen stag­niert das Wach­s­tum, bei Entwickler:innen laufen die Post­fäch­er durch Job­ver­mit­tler auf Busi­ness Plat­tfor­men über. Eine nicht ger­ade erfreuliche Sit­u­a­tion für alle also. Doch wie ist die Branche in die Sit­u­a­tion gekom­men und noch viel wichtiger wie kommt sie dort wieder her­aus? Wieso kom­men bish­erige Aus­bil­dungswege quan­ti­ta­tiv und auch qual­i­ta­tiv an ihre Gren­zen? Welche Möglichkeit­en der Fachkräfte Qual­i­fika­tion neuer Fachkräfte gibt es und welche Poten­ziale wer­den noch wenig aus­geschöpft und wieso?

Auf all diese Fra­gen und noch viel mehr wer­den Nico und Joe, auf Basis ihrer jahre­lan­gen Erfahrung in der Erwach­se­nen­fort­bil­dung, Antworten liefern.

Einstieg in das Testing von VueJS Applikationen

Das Ein­führen von neuen Tech­nolo­gien bringt meist einen ganzen Zoo an neuen Tools und Her­aus­forderun­gen mit sich. Daher muss pri­or­isiert wer­den und oft­mals fall­en The­men wie Test­ing hin­ten über. Dabei ist das The­ma Test­ing so essen­ziell wichtig, um Fehler frühzeit­ig zu erken­nen und Ärg­er und Stress zu ers­paren. Aber ger­ade in mod­er­nen Fron­tend-Architek­turen auf Basis von Vue­JS oder React, ist oft die Frage, was sollte ich testen und vor allem wie stelle ich das am besten an? 

In diesem Work­shop bietet dir Joe die Möglichkeit eine Ein­führung in das The­ma Test­ing für Vue­JS zu erhal­ten und Ein­blicke in fol­gende Lern­in­halte zu erhalten:

Next, Nest, Nuxt… Nust?

By the time this talk is over, some­one will have invent­ed a new JS frame­work. Thank­ful­ly it’s prob­a­bly not gained much pop­u­lar­i­ty yet. In the mean­time, Express.js is no longer the frame­work with the high­est sat­is­fac­tion rate, Next.js and frame­works recent­ly took the top spots in the lat­est Sta­te­OfJS survey.

In this ses­sion we’ll com­pare the big frame­works of today, check out their fea­tures, what they are miss­ing and con­sid­er their dif­fer­ent use-cas­es. By the end of the talk, there might be a new frame­work, but at least you’ll know when and where to use the exist­ing ones.

Reflection in TypeScript

Typen sind zur Laufzeit weg. Das ler­nen wir schon von Tag 1 an, wenn wir uns mit Type­Script beschäfti­gen. Je nach Hin­ter­grund ist diese Ein­schränkung sehr schmerzhaft, ger­ade wenn wir aus Ökosys­te­men wie der C# oder der Java-Welt kom­men, wo Bib­lio­theken, die auf Reflec­tion basieren gang und gäbe sind.

Im Laufe der Zeit hat die Type­Script-Com­mu­ni­ty den­noch viele Wege gefun­den, wie wir Kon­struk­te zwis­chen der Typ- und der Werte-Welt hin und her trans­portieren kön­nen. Begleit­et mich auf ein­er Reise durch die Zeit und lernt mit mir, wozu Type­Script noch alles fähig sein kann.

Zero-dependency Web Components

Web Com­po­nents sind als wiederver­w­ert­bare UI-Kom­po­nen­ten in aller Munde, doch wie wiederver­w­ert­bar, sta­bil und wartungs­fre­undlich ist etwas, dessen inner­er Auf­bau von Frame­works und Libraries abhängt? Genau gar nicht!

Die Gute Nachricht lautet: Es geht auch – wenn nicht gar bess­er – ohne Frame­works und Libraries! Dieser Work­shop weist Ihnen den Weg her­aus aus dem Depen­den­cy-Gulasch mod­ern­er Weben­twick­lung und hin zu Zero-Depen­den­cy Web Com­po­nents, gebaut mit puren Webstandards.

Neben argu­men­ta­tivem Rüstzeug gegen den Depen­den­cy-Wahn ver­sorgt sie dieser Work­shop mit dem the­o­retis­chen und prak­tis­chen Wis­sen rund um Stan­dard-basiertes Web-Com­po­nent-Design. Ler­nen Sie nicht nur alle rel­e­van­ten Brows­er-APIs rund um Web Com­po­nents ken­nen, son­dern erfahren Sie auch, wie Sie Kom­po­nen­ten gestal­ten kön­nen, die in Sachen API und Robus­theit nativ­en HTML-Ele­menten in nichts nach­ste­hen. Von API-Basics bis zu HTML-Ele­ment-Design-Philoso­phie bleibt kein Aspekt von Zero-Depen­den­cy Web Com­po­nents unbeleuchtet.

Type-Level Fizzbuzz

Ein neuer Tag, ein neues Bewer­bungs­ge­spräch und mal wieder die selbe Auf­gabe: Imple­men­tieren Sie FizzBuzz!
Anstatt in ein­er typ­is­chen Pro­gram­mier­sprache die Regeln rund um Zahlen, Schleifen, Bedin­gun­gen und Mod­u­lo-Oper­a­tio­nen zu imple­men­tieren, kön­nen wir uns auch ein­fach mal ein Späßchen gön­nen: Wie würde euer Gegenüber wohl reagieren, wenn ihr FizzBuzz nur mit Type­Script-Gener­ics, also kom­plett auf Typ-Ebene implementiert?

Was zunächst als Spaß begin­nt, wird schnell zur fort­geschrit­te­nen Übung rund um das mächtige Typ­sys­tem von Type­Script, bei der wir Funk­tio­nen wie bed­ingte Typen, rekur­sive Typen, Tupel-Typen und viele weit­ere geschickt kom­binieren müssen.

TypeScript-Typannotationen als Programmiersprache

Type­Script-Typan­no­ta­tio­nen sind eine eigene Pro­gram­mier­sprache! Typen sind Werte, Gener­ics sind Funk­tion­spa­ra­me­ter und Type­Script als Ganzes ist nicht nur ein wenig zusät­zliche Syn­tax, son­dern eine kom­plette in JavaScript einge­bet­tete DSL, die zu ver­ste­hen sich lohnt. Type­Script-Typen nicht nur zu schreiben, son­dern richtigge­hend zu pro­gram­mieren ist eine Superkraft, in die dieser Talk Sie ein­wei­ht! Mit nur wenig Umdenken und ein paar eher unbekan­nten Type­Script-Fea­tures kön­nen auch Sie kom­plexe Typ-Beziehungs­ge­flechte aus weni­gen basalen Regeln her­leit­en. Dieser Talk führt durch die Pro­gram­mierung eines Mes­sage-Bus-Sys­tems und ver­wen­det dabei fort­geschrit­tene Type­Script-Fea­tures wie Mapped Types, Dis­crim­i­nat­ed Unions und Con­di­tion­al Types, um den Mes­sage Bus mit weni­gen, aber smarten Typ-Def­i­n­i­tio­nen type­safe zu machen. Dabei ler­nen wir Typan­no­ta­tio­nen als eigene Pro­gram­mier­sprache ken­nen und bekom­men eine gän­zliche neue Per­spek­tive auf den Umgang mit Type­Script-Typen eröffnet.