GraphQL wurde 2016 von Facebook veröffentlicht. Damit lassen sich Web-APIs implementieren, die exakt die vom Client angefragten und benötigten Daten liefern. Während sich GraphQL im JavaScript-Umfeld bereits großer Beliebtheit erfreut, ist es im Java-Umfeld noch recht unbekannt. Das könnte sich allerdings in Zukunft ändern. Mit Spring for GraphQL hat Spring ein neues Projekt veröffentlicht, das Java-Entwicklern bei der Implementierung von modernen GraphQL-Web-APIs unterstützt.
Will man bestehenden Code verbessern, ist es nicht immer leicht, zu entscheiden, wann man mit dem Refactoring [1] anfängt und wann man es beendet. Die Idee der „Code Smells“ hilft dabei. Der Begriff beschreibt Strukturen im Code, die überarbeitet werden sollten. In diesem Artikel betrachten wir eine Sammlung wichtiger Code Smells und führen an einem Beispiel Schritt für Schritt ein Refactoring durch, durch das wir eine übelriechende Codestruktur verbessern.
In this JAX 2022 keynote, Thomas Wuerthinger, Senior Research Director at Oracle Labs and the GraalVM founder and project lead, introduces you to GraalVM.
Wie funktionieren APM Agents in der Java Virtual Machine im Detail? Was ist bei der Instrumentierung zu beachten und welche Besonderheiten von APM-Agenten muss man berücksichtigen? Und warum werden oftmals nur die bekanntesten Java-Frameworks unterstützt? Diesen Fragen gehen wir in diesem Beitrag auf den Grund.
Vor acht Jahren wurde das Reactive Manifesto [1] veröffentlicht, und ganz allmählich beginnt die reaktive Programmierung auch in der Java-Welt Fuß zu fassen. Deswegen lohnt es sich, die Erfahrungen und Best Practices aus einer anderen Community anzuschauen. Angular hat von Anfang an sehr stark auf RxJS gesetzt und sich damit eine ganze Menge Komplexität eingehandelt. Wie kann man sie beherrschbar machen und was können Java-Entwickler daraus lernen?
Firmen stehen häufig vor dem Problem, dass über lange Zeit gewachsene Softwareprojekte unwartbar und immer unverständlicher werden. Irgendwann stellt sich die Frage: Alles hinschmeißen und neu entwickeln? Wir möchten euch einen Einblick in unser Vorgehen, die Entscheidungsprozesse und unsere künftige Architektur geben. Insbesondere gehen wir auf das Set-up, das auf Quarkus basiert, ein und zeigen, dass sich damit nicht nur kleine Services bauen lassen.
Über Modularisierung wird viel und häufig gesprochen, aber die Gesprächspartner:innen stellen nach einiger Zeit fest, dass sie nicht dasselbe meinen. Die Informatik hat uns in den letzten fünfzig Jahren zwar eine Reihe guter Erklärungen geliefert, was Modularisierung ausmacht – aber reicht das, um wirklich zu den gleichen Schlüssen und Argumenten zu kommen?
Pattern Matching kennt man in erster Linie aus funktionalen Programmiersprachen. Damit lassen sich Daten sehr einfach und effizient auf bestimmte Inhalte prüfen und die relevanten Informationen aus den Datenstrukturen für die weitere Verarbeitung extrahieren. Seit drei Jahren wird nun Pattern Matching Stück für Stück in Java eingeführt. Und auch wenn noch nicht alle Funktionen fertig implementiert sind, lohnt sich schon jetzt ein Blick auf die vorhandenen Möglichkeiten und natürlich der Ausblick auf die zukünftigen Optionen.
Zwischen JDK 11 and JDK 17 hat sich viel getan in Javas GC-Landschaft. Man könnte sogar so weit gehen, zu sagen, dass nach einer Periode gewisser Stagnation seit dem JDK 11 wieder neues Leben und Innovation in die Memory-Management-Szene gekommen sind, die zu beträchtlichen Innovationen geführt haben. Dieser Artikel soll die wichtigsten Änderungen im Bereich Java Garbage Collection zwischen JDK 11 und JDK 17 näher beleuchten.
Bei einer Diskussion mit Kollegen kam die Frage auf, worin sich Streams und Iteratoren in Java eigentlich unterscheiden. Man sollte denken, dass beide Ansätze dazu gedacht sind, Dinge wiederholt auszuführen, und dass Streams nur eine komfortablere Art und Weise sind, den Algorithmus auszudrücken. Tatsächlich sind sich die beiden APIs in manchen Dingen ähnlich, in anderer Hinsicht unterscheiden sie sich jedoch.