Let Code Rule

Dresden, 24. April 2018

Videos,Folien und Beispielcode für Dev Day 2018

Hendrik Lösch

Hendrik Lösch ist Consultant und Trainer bei der Saxonia Systems AG. Schwerpunkt seiner Arbeit ist die Entwicklung Microsoft-basierender Software für Kunden im Medizin- und Industrieumfeld. Seine Vorliebe gilt dem Test Driven Development, der Testautomatisierung – hier vor allem dem Behavior Driven Development – sowie dem Clean Code. Sein Wissen auf diesem Gebiet gibt er als Konferenzsprecher und Fachautor weiter.

Abstract

Refactoring gehört zum wichtigen Handwerkszeug eines jeden Entwicklers. Dabei wird der Code schrittweise transformiert um ihn besser verständlich und lesbar zu gestalten. In dieser Session beschäftigen wir uns mit unterschiedlichen Refactoring Patterns, basierend auf häufig auftretenden Fehlersituation. Zu diesen gehören die einfachen Grundlagen wie das extrahieren und Zusammenfassen von Funktionalität, insbesondere aber komplexe Szenarien wie beispielsweise das Aufbrechen von Vererbungshierarchien hin zu einer Objektkomposition, oder das Auflösen von statischen Klassen hin zu Dependency Injection. Dazu wird an einer bestehenden C# Anwendung zunächst auf ein Problemszenario eingegangen bevor es anschließend live refaktorisert wird.

Martin Schurz

Als System Architekt ist Martin Schurz bei der T-Systems Multimedia Solutions GmbH für die Weiterentwicklung und den Betrieb zentraler Applikationen zuständig. Mit mehr als 15 Jahren Erfahrung im Application Management und beim Lösen von Problemen im Betrieb, wird er auch häufiger zur Hilfe beim Debuggen von Fehlern in anderen Projekten oder zur Wissensteilung in unseren Teams gerufen.

Abstract

Zu modernen Applikationen gehört auch ein passendes Monitoring System, das auf Änderungen schnell reagieren kann. Nach vielen erfolgreichen Jahren ist unser altes Monitoring System, welches auf Nagios und Cacti basiert, einfach nicht mehr zeitgemäß. In dieser Session werde ich den Weg von unserem alten System über die Aufnahme unserer Anforderungen, aus den verschiedenen Abteilungen, über Toolevaluierungen hin zur aktuellen Lösung, welche auf Icinga2 basiert, beschreiben. Ich werde dabei auch auf einige Implementierungsdetails eingehen und zeigen, wie wir Probleme in unserem Deployment gelöst haben.

Benjamin Wolf

Benjamin Wolf arbeitet als Senior Consultant bei INNOQ. Im Laufe der Jahre entwickelte er unterschiedliche Software in Java und .Net. Zu seinen Aufgaben gehören Konzeption von Architekturen, Entwickeln von Code und Refaktorieren von Legacy-Code. Der Bereich der Software-Qualität hat sich dabei für ihn zum Schwerpunkt entwickelt.

Abstract

Haben Sie schon einmal so etwas “void actReqInter4ProcUp(string aHaMesCo)” oder etwas Ähnliches gesehen? Dabei handelt es sich um einen sogenannten Software-Dämon. Ein anderes Exemplar ist folgende Nachricht eines Commits, der ca. 35 Dateien betraf: “some little changes”. Die folgenden zwei Fragen muss sich ein Entwickler unter anderem stellen, um eben solche Dämonen nicht zu beschwören: - Was genau soll ich in meine Commit-Message schreiben? - Wie benenne ich diese Funktion/dieses Member? Beide Fragen zielen auf das Gleiche ab: das Benennen von Dingen, die man geschaffen hat. Dieser Vortrag gibt mit vielen zum Teil lustigen aber auch schrecklichen Beispielen aus dem Projekt-Leben auf beide Fragen Antworten. Und praktische Tipps stellen dar, wie Sie in Zukunft selbst Dämonen austreiben können. Dieser Vortrag richtet sich an unerfahrene sowie auch an erfahrene Entwickler, die sich genau diese Fragen immer wieder stellen und bisher keine zufriedenstellende Antwort gefunden haben.

Ulrich Deiters

Ulrich Deiters arbeitet als Software-Architekt bei der T-Systems Multimedia Solutions GmbH und unterstützt zur Zeit Kunden und Teams bei der Umsetzung mobiler Services im Rahmen der Digitalisierung. In den letzten 20 Jahren hat er mit Menschen Softwarelösungen für Menschen vor allem in den Bereichen Finanzen, Medien, Gesundheit und Öffentliche Hand entwickelt und sich unter anderem mit Webanwendungen, Portalen, Content Management, Contact Center, IP Telefonie und Mobile Apps beschäftigt. Seine besonderes Interesse gilt Agile und Lean Development und leichtgewichtigen Architekturen. https://xing.to/uli

Abstract

"High Speed Internet, permanently online, permanently connected, LTE überall, na klar geht alles nur online - der Rest ist Error Handling. Done." Oft ist uns gar nicht mehr bewusst, dass wir damit Nutzer enttäuschen, ihre Zeit verschwenden und die Nutzung unserer Anwendungen einschränken. Leider ist Offline-Fähigkeit nachträglich oft ähnlich schlecht nachrüstbar wie die Unterstützung von Mobile Devices. Daher möchten ich Euch zeigen, wie man mit Offline First von Anfang an "offline denken" kann, vergleichbar mit Mobile First. Ich werde Euch kurz in die Motivation für Offline-Funktionen, Nutzerwartungen, UX-Ansätze sowie Herausforderungen und Ansätze für die Anwendungsarchitektur und -sicherheit einführen und aufzeigen wie wir CAP und Eventual Consistency auf diese Problemstellung anwenden können. Anhang von konkreten Kundenprojekten für Native Mobile Apps schauen wir uns Nutzen und Lösungen für effektives Offline-Arbeiten an. Wir werfen einen Blick darauf, welche Technologien für Progressive Web Apps zur Verfügung stehen und wie Digital Business Platforms wie Salesforce oder die SAP Cloud Platform die Offlinefähigkeit unterstützen. Kann man wirklich schon „Offline as a Service“ dazukaufen? Also: "Kein Netz" ist nicht zwingend ein Fehler.

Peter Kröner

Peter Kröner arbeitet als Webtechnologie-Experte in Berlin. Seit dem Erscheinen seines Buchs „HTML5 - Webseiten innovativ und zukunftssicher“ im Jahr 2010 ist er als Trainer und Berater für Themen rund um JavaScript, HTML5 und andere Web-Zukunftstechnologien tätig. Zuvor war er lange Jahre selbstständiger Webdesigner und Frontendentwickler. Er bloggt (http://www.peterkroener.de/weblog), podcastet (http://workingdraft.de) und entwickelt Projekte (https://github.com/SirPepe) rund um die Technik, die das WWW von morgen antreibt.

Abstract

Die Cross-Plattform-Apps der Zukunft sind offlinefähige Progressive Web Apps, die mit Hilfe zahlreicher neuer Webstandards wie Service Workers, Offline-Datastores und Background-Sync von herkömmlichen Webapps zu quasi-nativen Anwendungen mutieren. Wie das genau funktioniert, zeigt dieser Talk! Wir begleiten eine kleine Webapp auf ihrer Reise von einer reinen Webseite hin zu einer App, die sich auf Smartphone wie Desktop als Bürger erster Klasse installiert. Neben konkreten Technologien geht es auch um Architekturüberlegungen, hilfreiche Libraries sowie Devtools und Debugging-Techniken.

Stephan Lo

Berater und Developer bei der T-Systems Multimedia Solutions GmbH Stephan Lo ist begeisterter Software-Engineer - seit den frühen Tagen der Internet- und OpenSource-Softwareentwicklung. Waren es am Anfang Objektorientierung und verteilte Services im Web, die sich allein durch das Vernetzen von einfachen Funktionen zu mächtigen Programm-Organismen zusammenfügten... ... war es als nächstes die agile Software-Entwicklung, die die Komplexität der reinen Softwareentwicklung für selbstorganisierte Teams in messbare und lean gemanagte Produktinkremente fassbar machte... ....ist die Begeisterung nun seit einigen Jahren das gelebte DevOps, das alle Wertschöpfungselemente des Software-Engineerings unter dem Motto ‚Everything is code‘ zusammenfasst – also auch die IT-Infrastruktur, das Plattform Konfigurationsmanagement und die Automatisierung des Software-Deployments. Stephan Lo ist gelernter Physiker und hat im Studium und ersten Berufsjahren C und C++ eingesetzt und dabei einen Hang zu modelliertem OOP im Erich Gamma'schen Sinn entwickelt. In der T-Systems MMS ist er über Webentwicklung, Anforderungsmanagement, Consulting zu DevOps-Consulting gekommen. Ausserdem ist er seit einigen Jahren in Personalunion ProductOwner, Entwickler, Tester und Betreiber eines Tools zum Migrieren von Dokumenten in das EnterpriseDocumentManagementsystem 'doculife'. Dieses in PHP/Symfony geschriebene Tool bekommt nun immer mehr DevOps ab - und war daher der Ideen- und Materiallieferant für die devday.18 Session.

Abstract

Gut, dass es DevOps gibt ... der Sprachenbattle ist demystified und man kann endlich PHP als allgemein nutzbare Programmiersprache in einem Anwendungs- und Plattformstack einsetzen auch ohne dass despektierliches Genörgel an der Skriptsprache von der Fokussierung auf die eigentliche Dev-Kunst ablenkt ... Ja! Lasst uns im Jahr 2018 einen Blick darauf werfen, was Service-oriented Architecture, Continuous Deployment, Containerisierung, Automatiserung und Virtualisierung dem Developer eines small-scale DevOps-Teams Phänomenales anbieten: - reproduzierbares, schnelles und vollständig lokales Aufsetzen aller Umgebungen inklusive Datenbanken und Inhalten - testgetriebene Entwicklung, Klassifizierung von Tests auf den unterschiedlichen Stages - Continuous Deployment mit unterschiedlichen Jenkinsen und Pipelines - Laufzeit vollständig Linux-containerisiert, und das auf Windows10 - Run Services on demand in Swarms und Debugging aus den Containern heraus Die Session zeigt drei Themen auf: - PHP Development Lifecycle mit einem Full Fledged Bleeding Edge DevOps - Continuous Deployment with Immutable Containers and Test Driven Development - Modern Infrastructure - bring DevOps benefits to your development und zwar am Beispiel einer Microservice-Anwendung u.a. mit PHP Symfony4. Fazit: - Container! Container! Container! - ... für App, Runtime, Database, Deployment, Operation Discussion: - self made platform - how does this fit into Azure's, AWS's, OTC's, .... PaaS features? - setup - what else is state of the art or upcoming? - this is one view on small and local development - what is yours?

Mark Keinhörster

Mark Keinhörster arbeitet als Data Architect bei der Codecentric AG und ist im Big-Data Zoo zu Hause. Er bringt Erfahrungen in der Entwicklung von Hadoop und Apache Spark mit und beschäftigt sich außerdem mit Docker, Microservices und Cloud-Technologien.

Abstract

In diesem Vortrag machen wir einen Ausflug in die Welt der Texterkennung mit freier Software und gehen Stück für Stück durch die einzelnen Teilbereiche einer flexiblen und skalierbaren OCR Applikation. In einer Live-Demo wird gezeigt wie Tesseract zur Texterkennung verwendet und die Qualität mit freien Frameworks wie openCV verbessert wird. Im Anschluss werden die Dokumente indiziert abgelegt. Das alles mit nur wenigen Zeilen Code und ganze im Sinne des Interactive Programming mit Jupyter. == Agenda inklusive Live-Coding == - Quirks und Pitfalls beim Erkennen von Dokumenten - Möglichkeiten und Vorverarbeitung mit openCV - Tesseract skalierbar Nutzen - Ergebnisse quantifizieren, vergleichen und Aufwerten - Texterkennung mit Tensorflow die über das MNIST Beispiel hinausgeht

Jan Dittberner

Jan Dittberner ist Software-Architekt bei der T-Systems Multimedia Solutions GmbH. Er arbeitet seit mehreren Jahren als Architekt in einem großen E-Mail-Infrastrukturprojekt für ein großes deutsches Telekommunikationsunternehmen. Daneben engagiert er sich im DevOps-Programm innerhalb der T-Systems MMS und beschäftigt sich intensiv mit Themen wie Automatisierung, Versionskontrolle mit Git und PKI. In seiner Freizeit arbeitet er als Developer im Debian Projekt und als Infrastrukturteamlead bei CAcert mit.

Abstract

Im Zuge von Virtualisierung, Cloud-Deployments und kurzlebigen Applikationscontainern stellt sich die Frage, wie man Zugangsdaten, private Schlüssel, Zertifikate und andere Credentials so ablegen kann, dass sie vor unbefugtem Zugriff geschützt sind. Mit Hashicorp Vault gibt es eine Lösung für eine gesicherte Ablage solcher Credentials. In der Session wird praktisch gezeigt, wie man diverse Credentials von Spring-Boot-Anwendungen in Vault hinterlegen bzw. erzeugen kann und wie sich das in Spring und Java integrieren lässt. Folgende Möglichkeiten von Vault werden betrachtet: - Vault Authentifizierung mit Tokens und Applikationsrollen - Datenbank-Backend für dynamische Datenbank-Credentials - PKI-Backend für dynamische Anwendungszertifikate - Generic Secret-Backend

Saskia Bader

Saskia Bader ist eine Webentwicklerin und Bloggerin aus Berlin. Sie hat eine angeborene Sehbehinderung und setzt sich daher bei Netz- und Entwicklerkonferenzen für mehr Barrierefreiheit in der digitalen Welt ein.

Abstract

Moderne Software, Apps und Websites können uns neue Möglichkeiten eröffnen und uns den Alltag erleichtern. Es kann aber längst nicht jeder von all diesen Vorteilen profitieren, denn viele digitale Tools und Websites sind mit einer Beeinträchtigung, wie zB einer Sehschwäche, nur eingeschränkt oder gar nicht zu bedienen. In dieser Grundlagensession zum Thema "Accessiblity" möchte ich Basiswissen vermitteln und an Beispielen erklären, was Entwickler tun können, um möglichst alle Nutzer voll an ihrem Produkt teilhaben zu lassen.