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

 

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

Die DASA-DevOps-Prinzipien

Im 1. Teil unserer Artikelserie werden die DASA-DevOps-Prinzipien im Überblick dargestellt. Betrachtet man alle Prinzipien und Zusammenhänge, hat man eine solide Basis für die Entwicklung in Organisation und Personal geschaffen. DevOps als Kunstwort beschreibt eine Philosophie, die die beiden Namensgeber Entwicklung und Betrieb zusammenbringt. Das Ziel ist es, kontinuierliche Softwarebereitstellung sicherzustellen, um schneller auf Marktveränderungen

DevOps-Sportfreunde

Der folgende Artikel knüpft an den Beitrag „Skills, Tools und das richtige Mindset für DevOps“ – JAVAPRO 03-2018 an und schlägt die Brücke zwischen den Konzepten und Prinzipien hin zur gelebten Praxis. Wenn man das Thema DevOps mit einer Sportart vergleicht, dann kommt nach der allgemeinen Beschreibung der Spielregeln aus dem vorhergehenden Artikel nun die

Monolithen mit DDD aufschneiden

Fast jedes Softwaresystem wird mit guten Vorsätzen, aber unter schwierigen Bedingungen entwickelt: Knappe Zeitvorgaben zwingen uns, schnelle Lösungen – Hacks – zu programmieren. Unterschiedliche Qualifikationen im Entwicklungsteam führen zu Code in ebenso unterschiedlicher Güte. Alter Code, den keiner mehr kennt, muss angepasst werden und vieles mehr. All das führt zu schlechtem, verknäultem Code, dem sogenannten

IoT-Messaging mit MQTT 5 und Java

Mit der HiveMQ-MQTT-Client-Library kann das de-facto Standardprotokoll für IoT in der neuesten Version genutzt werden. MQTT ist mittlerweile das populärste IoT-Protokoll (Google-Trends-Analyse) für die Kommunikation zwischen Geräten und Applikationen über das Internet. Einige der verschiedenen Anwendungsfälle für das schlanke und leichtgewichtige MQTT sind unter anderem: Industrie 4.0, Connected-Cars, Logistik-Mobile-Apps und leichtgewichtiges Messaging zwischen Microservices. Speziell

Die Cloud ist nicht unantastbar

Bedrohungen, denen Cloud-Umgebungen ausgesetzt sind, decken sich in vielen Punkten mit den Gefahren für Inhouse-Netze. Oft fehlt Unternehmen der Überblick über die Anzahl der Geräte im Netz, was Hackern Vorteile bietet. Dieser Artikel deckt elf Risiken im Zusammenhang mit Cloud-Computing auf und gibt konkrete Empfehlungen dazu.   1. Datenlecks Auf seine Daten achtet jeder Konzern

Das Agile-Coaching-Dojo

Exzellenz in der agilen Praxis kann nicht allein aus dem Lehrbuch kommen, sondern ist immer auch eine Frage der Weitergabe und Modellierung von Erfahrungswerten. Um einen solchen Prozess innerhalb des eigenen Unternehmens einzuführen und zu systematisieren, ist das Veranstaltungsformat Agile-Coaching-Dojo besonders geeignet. In diesem Artikel erfahren Sie mehr über seine Ziele und Philosophie sowie die

Camel-K – Leichtgewichtige Cloud-Integrations-Plattform

Im Sommer letzten Jahres startete Camel-K als eine Community-getriebene Plattform für das einfache und schnelle Deployment von Apache-Camel-Anwendungen als Cloud-Native-Serverless-Funktionen in Kubernetes oder Openshift. Das Projekt Camel-K verbindet damit die erfolgreiche Enterprise-Integration-Bibliothek Apache-Camel mit dem Serverless-Ansatz. Die in Camel geschriebenen Integrationen können damit direkt auf einer Cloud-Plattform wie Kubernetes ausgeführt werden. Was ist Apache Camel?

Containerbasierte Testautomatisierung

In Zeiten von Containern, Clustern, Build-Pipelines und DevOps ist ein hoher Grad an Automatisierung notwendig, um sich auf das Wesentliche zu konzentrieren: Das Softwareprodukt. Hierfür bietet die Open-Source- Welt eine Reihe von Werkzeugen, um vollautomatische, steuerbare und reproduzierbare Build-, Test- und Deployment-Prozesse zu realisieren. Testen von Microservices Ein Tech-Stack mit unterschiedlichsten Technologien, die Fachlichkeit in

MicroProfile für Microservices mit Java EE

Die Entwicklung von Microservices schreitet in einem rasanten Tempo voran und stellt Entwickler vor immer neue und anspruchsvollere Herausforderungen. Nach der Meinung vieler ist Java-EE nicht geeignet, die gestiegenen Ansprüche zu erfüllen. Aus diesem Grund wurde das Eclipse-MicroProfile-Projekt ins Leben gerufen. Ziel ist es, einen Standard für die Entwicklung von Microservices auf Basis von Java

Die Qual der Wahl

Wahlen in München: ca. 950.000 Wähler, 400.000 Briefwähler, 1.000 Wahllokale, Rechenfehler, 10.000 Seiten Papier. Um hier besser zu werden hat der Stadtrat der Landeshauptstadt München beschlossen die Datenerhebung in den Wahllokalen zu digitalisieren. Umgesetzt wurde dieser Beschluss in Form einer offline-fähigen Single-Page-Application und Spring-Microservices im Backend. Wahlen in einer Großstadt sind eine Herausforderung   Bei

API-Design – Do’s and Don’ts

Im Zeitalter der Modularisierung von Software kommt kein Java-Entwickler daran vorbei, früher oder später ein Application-Programming-Interface (API) zu definieren oder zu erweitern. Der Entwurf eines guten API erfordert keine Kenntnisse in schwarzer Magie. Werden einige wenige Konventionen befolgt, erhöht das die Qualität der Schnittstelle deutlich. Was sind die Qualitätsmerkmale eines API? Eine Schnittstelle muss zuallererst

Neues in Java 13

Java-Release 13 ist für September 2019 geplant. Es ist bereits das dritte Major-Release nach der Bekanntgabe des neuen Lizenzmodells und Release-Zyklus im September 2018. Einige Features sind vielversprechend. Für Entwickler halten sich die neuen Features jedoch in Grenzen. Zu den Neuigkeiten von Java 13 gehören 5 Features, welche in Form von JDK-Enhancement-Proposal (JEP) beschrieben sind.

Huawei: Harmony-OS ersetzt Android

Es ist ein Paukenschlag. Der chinesische Konzern Huawei hat auf der eigenen Entwicklerkonferenz HDC im chinesischen Shonshan Lake mit HarmonyOS nun offiziell sein eigenes Betriebssystem als Alternative zu Android vorgestellt. Huawei-Manager hatten zuletzt noch bekräftigt, das System ist nicht als Android-Ersatz gedacht. Harmony OS, das in China unter dem Namen Hongmeng OS laufen soll, war

Penetrationstests von Web-Anwendungen

#JAVAPRO #Testing #Penetrationstest || Penetrationstests sind mittlerweile in vielen Unternehmen geübte Praxis, auch wenn es noch Firmen gibt, in welchen bis heute noch kein einziger Penetrationstest durchgeführt wurde. Bei diesen Tests wird die Angreiferperspektive eingenommen und ein professioneller Tester führt dabei dynamische Analysen durch. Penetrationstests können vielerlei Ziele und Methoden haben. So gibt es ganz