JAVAPRO – DAS KOSTENLOSE MAGAZIN FÜR JAVA PROFIS

JETZT NEU – AUSGABE 3-2019:

Horror Serialisierung

06 NEUES IN JAVA 13
09 MASTERING THE API HELL
22 COLLECTIONS EFFEKTIVER DURCHSUCHEN MIT JAVA-8-STREAMS
37 WEB- UND DESKTOP-ANWENDUNG AUS EINER CODE-BASE
50 JAVA – ABER SICHER!
60 HORROR SERIALISIERUNG
72 NACHHALTIGE REPORT-ENTWICKLUNG MIT TDD
78 WAS DEVOPS WISSEN MÜSSEN
89 RESILIENZ DURCH ORGANIC-AGILITY

Einfach kostenlos anfordern. Lieferung erfolgt frei Haus. Nur innerhalb D. möglich.
Kein kostenpflichtiges Abo, denn die JAVAPRO kann man nicht kaufen!

Jetzt kostenlos anfordern

 

Mastering the API-Hell

Microservices sind heute nicht mehr wegzudenken. Doch Abhängigkeiten der Schnittstellen zwischen den Services verhindern oftmals eine unabhängige Weiterentwicklung der Services. Contract-Testing hilft dieses Problem zu lösen.   Software wird immer öfter nicht nur als Werkzeug gesehen, sondern als zentraler Baustein der Produktstrategie. Mit der steigenden Bedeutung der Software, muss diese schnell weiterentwickelt werden können, um

Oracle OpenWorld zieht nach Las Vegas um

Seit 1996 veranstaltet Oracle die OpenWorld in San Francisco. Nun berichtet der Wirtschaftssender CNBC, dass die OpenWorld in 2020 erstmalig in Las Vegas stattfinden wird. Für San Francisco ist das ein herber Schlag. Seit über 20 Jahren findet die Hausmesse von Oracle schon in der „City by the Bay“ statt und zieht in der Zwischenzeit

Container-Monitoring mit Prometheus

Entwickler benötigen Informationen über technische Fehlfunktionen in verteilten Systemen und Anwendungen, um schnell reagieren und Ausfälle verhindern zu können. Observability steht für einen umfassenden Ansatz, der zahlreiche Faktoren für die Überwachung und Beobachtung des Verhaltens von Software einbezieht. Ein zentrales Instrument dafür ist das Tool Prometheus. Die Monitoring-Infrastruktur für Applikationen wird immer wichtiger, auch weil

Java – aber sicher!

Java boomt. 24 Jahre nach der Einführung ist Java populär wie nie – und die Zeichen stehen auch 2019 klar auf Wachstum. Denn Java gehört nicht nur im Web- und Mobile-Development nach wie vor zu den Favoriten vieler Entwickler, sondern hat auch in Wachstumssegmenten wie Big-Data und Internet-of-Things fest den Fuß in der Tür. Angesichts

Spring-Boot im Legacy-Kontext

Für die Weiterentwicklung von Legacy-Anwendungen sind oftmals zusätzliche Werkzeuge und Frameworks erforderlich. Der Artikel zeigt auf, wie sich in diesem Zusammenhang Spring-Boot sinnvoll einsetzen lässt.   Spring  ist ein nützliches Open-Source-Framework für die Java-Plattform. Das Kernziel des Projekts besteht darin, die Java-/Java-EE-Entwicklung durch die Entkopplung von Applikationskomponenten zu vereinfachen. Die zentralen Mechanismen sind dabei

Horror Serialisierung

Serialisierung ist das die größte Schwachstelle in Java. Praktisch alle wichtigen Java-APIs und Frameworks verwenden Serialisierung. Wirksamer Schutz ist kaum möglich und vorhandene Alternativen lösen die fundamentalen Probleme nicht. Mit MicroStream gibt es jetzt eine neue Serialisierung für Java, die nicht nur mehr Sicherheit verspricht, sondern zudem fantastische Möglichkeiten bietet. In objektorientierte Programmiersprachen wie Java

Collections effektiver durchsuchen mit Java-8-Streams

Wenn man bis Java 7 die Elemente einer Collection bearbeiten wollte, musste man sich mühsam mithilfe einer Schleife oder eines Iterators durch die Elemente klicken. In Java 8 sind Streams als neues Sprachelement eingeführt worden. Sie ermöglichen die Bearbeitung von Collections mit weniger und kompakterem Code, ohne dass die Lesbarkeit darunter leidet.   Collections durchlaufen

Web- und Desktop-Anwendung mit einer Code-Base

Viele sehen die Zukunft von Java im Web, gleichzeitig sollen aber bestehende Desktop-Anwendungen weiterhin stand-alone funktionieren. Die Lösung: Einen Application-Server transparent in eine Electron-Anwendung einbetten und damit das bestehende Nutzererlebnis erhalten. Beispielhaft wird in diesem Artikel eine Swing-Altanwendung in eine Web-Anwendung transformiert und deren Qualität durch hochwertigen UI-Test gesichert. Anfang 2014 kamen die Entwickler von

JavaScript Security – Best Practice

JavaScript ist mittlerweile überall. Neben dem Großteil der Web- und Mobile-Apps werden inzwischen auch Server-Applikationen und selbst Anwendungen in der Automotive-Industrie damit programmiert. Auch Java-Entwickler kommen somit immer öfter mit JavaScript in Kontakt. Mit der Zahl kritischer Anwendungsgebiete steigt aber auch das Schadenpotenzial. Schwachstellen wie XSS, CSRF und SQL-Injections sind hinlänglich bekannt. Doch in vielen

Netzwerksegmentierung funktioniert auch in der Cloud

Die Netzwerksegmentierung ist eine bewährte Sicherheitsstrategie, mit der man Richtlinien für verschiedene Dienste festlegen kann, die zwischen den Zonen erlaubt sind. Durch die Klassifizierung der vertraulichen Daten und Ressourcen innerhalb der Zonen wird sichergestellt, dass nur bestimmte Nutzer, die zu anderen Zonen gehören, auf diese Daten zugreifen können. Das hilft dabei, Angriffe einzudämmen, da Bewegungen

Getting Hip with JHipster

JHipster ist ein Framework, um Spring-Boot-basierte Web-Anwendungen und Microservices mit Angular, React oder Vue-Frontends zu generieren, zu entwickeln und zu betreiben. Mit JHipster lässt sich eine Anwendung bootstrappen und das Datenmodell erzeugen, sodass man sich auf das Implementieren der Businesslogik konzentrieren kann. JHipster kombiniert unterschiedliche Technologien und Frameworks, konfiguriert diese nach aktuellen Best-Practices und stellt

Technische Schulden in der DevScoreOps-Welt

Wenn von technischen Schulden die Rede ist, denken viele vor allem an die traditionelle Applikationsentwicklung. Schuldzuweisungen aber helfen nicht weiter, denn auch die DevSecOps-Welt ist davon nicht verschont. Wichtig ist, technische Schulden genau zu dokumentieren und Prioritäten für deren Behebung festzulegen. Wie bei fast allen Verfahren und Prozessen in der IT gibt es auch beim

Wir entscheiden zusammen, nicht allein

Die agile Software-Entwicklung forciert selbst-organisierte, autonome Teams. Diese Organisationsform steht im Widerspruch zu den klassischen Methoden für Technologieentscheidungen: Entscheidet ein CTO oder ein außenstehender Architekt über die eingesetzten Programmiersprachen, Frameworks und Werkzeuge, werden die Autonomie und Selbstorganisation der Entwicklungsteams erheblich eingeschränkt. Wie lassen sich Technologieentscheidungen ohne diese Einschränkungen organisieren? Welche typischen Probleme treten dabei auf?

Deep-Dive into Annotations – Teil 3

Java-Annotationen sind ein mächtiges Sprachmerkmal, deren Interna allgemein nicht sonderlich bekannt sind. In Teil 3 unserer dreiteiligen Serie geht es um die Auswertung eigener Annotationen zur Laufzeit. In Teil 1 unserer Serie wurden diverse Verwendungszwecke für Annotationen aufgezeigt und die fünf Java-SE-Standardannotationen detailliert diskutiert. Teil 2 führte aus, wie eigene Annotationstypen programmiert werden können. Dabei wurden insbesondere die

Nachhaltige Report-Entwicklung mit TDD

Graphische Auswertungen sind ein zentraler Wertschöpfungsfaktor in den verschiedenen Softwareprodukten, mit denen wir uns im Entwickleralltag beschäftigen. Trotzdem verzichten viele Projektteams an dieser Schlüsselstelle auf automatisierte Tests. Wie kann ein Vorgehen aussehen, das dem hohen fachlichen Wert gerecht wird und dennoch in einem vertretbaren Zeitrahmen umsetzbar ist? Stellen wir uns eine dieser zahlreichen Web-Applikationen vor:

MicroStream: In-Memory Datenbanken mit Pure Java

#JAVAPRO #JCON2019 #InMemoryDatabase #NoSQL Mit MicroStream gibt es jetzt einen neuen Ansatz für die Persistierung von Daten in Java. MicroStream speichert Java-Objektgraphen genauso, wie diese im RAM existieren. Objekte müssen nicht durch Annotation oder XML-Konfigurationen aufwändig auf eine künstliche Struktur gemappt werden. Das In-Memory-Konzept von MicroStream ermöglicht Datenzugriffe im Bereich von Nanosekunden – bis zu

Was DevOps heute wissen müssen

Der erste Teil unserer zweiteiligen Serie hat die 6 DASA-DevOps-Prinzipien dargestellt. Der zweite Teil geht nun auf das DASA-DevOps-Kompetenz-Framework ein, welches 12 Bereiche definiert, in denen die Mitarbeiter Qualifikationen haben müssen. Die Bereiche reichen von Soft-Skills wie Mut und Leadership über eher technische Aspekte wie Infrastruktur-Engineering und Continuous-Delivery zu eher klassischen Themen wie Business-Analyse und

Resilienz durch Organic-Agility

Resilienz ist für die Anpassung an komplexe und volatile Situationen in jedwedem Bereich essentiell – von der Softwareentwicklung bis hin zum Management von Organisationen. Organic-Agility ist ein evolutionärer Ansatz der zeigt, warum eine kohärente Organisationskultur und agiler Leadership den Organisationen dabei helfen, Resilienz zu erzielen und sich auf die Anforderungen der heutigen Realität einzustellen.  

10 Grundsätze für sichere Softwareentwicklung

Die Entwicklung moderner Software ist heutzutage so komplex, dass Fehler trotz intensiver Prüfung nicht oder nur schwer erkennbar sind. Dies hat eindrucksvoll die Heartbleed-Schwachstelle der älteren Version der Open-Source-Bibliothek OpenSSL gezeigt. Ein Großteil der Online-Dienste und Websites zeigte sich dadurch für Angriffe anfällig. Dieser Artikel nennt zehn Grundsätze für eine sichere Softwareentwicklung.   Grundsatz 1:

Verantwortung in einem Team

Aus diffusem Verständnis von Verantwortlichkeit entstehen in Projekten oft Streitereien und unnötiges Hin und Her. Wenn es um Verantwortung geht, ist es hilfreich, sich über bestimmte Zusammenhänge bewusst zu sein. Dieser Artikel zeigt auf, welche klassischen Fehler in der Praxis immer wieder gemacht werden und wie man Verantwortung richtig (ver-)teilt.   Stellen Sie sich folgendes

Risiko Open Source

Entwickler übersehen häufig die mit Open-Source verbundenen Sicherheits- und Lizenzrisiken. Das Black-Duck-Audit-Services-Team von Synopsys führt jedes Jahr Open-Source-Audits für seine Kunden durch und prüft dabei tausende Codebasen. Diese Prüfungen werden in erster Linie von M&A-Prozessen bestimmt und sind die primäre Quelle anonymisierter Daten für die jährliche Open-Source-Sicherheits- und Risikoanalyse (OSSRA). Die diesjährige OSSRA 2019 Studie

Architekturentscheidungen in agilen Projekten

Was mache ich als Architekt in einem agilen Team, wenn wir im Sprint 1 vor der Entscheidung stehen, welches Architekturmuster oder welche Technologien wir einsetzen und wir innerhalb des Sprints entscheiden wollen? Einfach machen und dann refactoren? Und wenn es verschiedene Ansichten gibt, wie wir es machen können?   Das fiktive Projekt Als Fallstudie wird

Von der Pflicht zur Kür – vollumfängliche, automatisierte Softwaretests

Unit-Tests sind heutzutage Standard im Bereich der Testautomatisierung. Doch die moderne agile Softwareentwicklung will mehr und strebt nach größtmöglicher Qualität und Effizienz. Warum Unternehmen die Disziplinen Integrations- und UI-Tests nicht länger vernachlässigen sollten.   Unit-Tests bilden die Basis der Testabdeckung und sind in der Softwareentwicklung Standard. Bei diesem Testverfahren werden einzelne Softwarekomponenten isoliert betrachtet und

Task-Parallelität mit CompletableFutures

Obwohl viele Java-Entwickler die CompletableFuture-Klasse kennen, wird sie in Projekten immer noch selten eingesetzt. Das mag daran liegen, dass die Klasse auf den ersten Blick komplex wirkt oder dass die Einsatzmöglichkeiten nicht immer offensichtlich sind. Dabei lässt sich mit Hilfe von CompletableFutures recht einfach Task-Parallelität realisieren. Im Folgenden werden einige Best-Practices vorgestellt und gezeigt, wie