Letzte Beiträge

Entwicklungspraxis 10. Juli 2023

Nobody Talks About Project Loom

Hi,

Wieso spricht keiner über Project Loom?

Auf der JVM steht uns einer der größten Änderungen seit Jahren bevor.

Und sie beeinflusst massiv wie wir arbeiten.

Asynchronität ist schwer. Es muss über so viel nachgedacht werden:

Wie konfiguriere ich meinen Threadpool? Hat der Codepath mehr wait-time oder rechnet er lange? Und wie groß sollte die Queue vor dem Threadpool sein? Sind Spikes in dem Codepath zu erwarten?

Und wie bekomme ich eigentlich meine globalen State, wie den SecurityContext oder den MDC darüber?


Entwicklungspraxis 5. Juli 2023

Hibernate ORM: Eager oder Lazy Loading? Wann du welches nutzen solltest

Hibernate ist ein etabliertes Object-Relational Mapping (ORM) Framework, das in der Java-Entwicklung weit verbreitet ist. Dieses Framework hilft Entwicklern, den Code für Datenbankvorgänge wie das Abrufen von Daten (auch bekannt als Fetching) zu optimieren. Die Wahl der richtigen Fetching-Strategie - Eager Loading oder Lazy Loading - ist entscheidend für die Leistungsfähigkeit deiner Anwendung. In diesem Artikel betrachten wir diese beiden Strategien und diskutieren, wann und wie du sie in deinem Spring-Data-Projekt einsetzen solltest.


Entwicklungspraxis 3. Juli 2023

Are You a Carpenter?

Hi,

Was unterscheidet einen Softwareentwickler von einem Schreiner?

Der Schreiner produziert Möbel. Der Entwickler Softwareanwendungen.

Stell dir vor du gehst zum Schreiner. Du betrittst die Werkstatt, siehst allerlei Material, Werkzeuge, fertige und unfertige Möbelstücke. Der Meister kommt auf dich zu.

Er fragt dich nach deinen Wünschen. Es soll ein Tisch sein. Mit eingelassener Plexiglas-Platte. Für draußen.

Passend zu deinen Wünschen und mit seiner Expertise sucht er das richtige Holz aus. Für draußen muss es ein Wetterbeständiges Material sein. Es darf sich nicht stark verziehen. Damit die eingelassene Platte nicht zerbricht.


Entwicklungspraxis 29. Juni 2023

Write your own PasswordEncoder. NOT!

Hi,

Hast du schon mal einen eigenen Passwort-Encoder geschrieben? Ich zwar nicht direkt - aber ich musste einen selbstgezimmerten benutzen. In einem zentralen User-Management-Service liefen die Kundendaten aller Nutzer zusammen. Und in diesem wurden die Passwörter gespeichert. Bei der Registrierung eines neuen Users musste also der gleiche Encoder genutzt werden.

Es ist uns in der Praxis - zum Glück - nicht um die Ohren geflogen. Aber es war höchst kritisch. Das Encoding war nicht stark. Der Salt basierte noch auf MD5. Das war bereits zu dieser Zeit kein starker Hashingalgorithmus mehr. Die banale Lösung es “sicherer” zu machen: Einfach zwei mal anwenden. Da kommt niemand drauf 🤦‍♂️


Entwicklungspraxis 28. Juni 2023

Wie definiere ich einen Index mit Spring Data JPA

In diesem Artikel beschäftigen wir uns mit der Definition von Indizes in Spring Data JPA und dem Hibernate Framework. Unser Fokus liegt dabei auf der Definition eines Indexes für eine Nicht-Primarykey und der Nutzung der @Index Annotation.

Die richtige Verwendung von Indizes spielt eine entscheidende Rolle für die Leistungsoptimierung deiner Datenbank, da sie schnellere Datenabfragen ermöglicht und insgesamt die Datenbankperformance verbessert.

Definition eines Indexes mit der @Index Annotation

Mit JPA und Hibernate kannst du Indizes auf Entitäten und Nicht-Entitätstabellen wie @SecondaryTable, @CollectionTable und @JoinTable über die @Index Annotation definieren. Diese dient der Datenbankperformance-Optimierung und der Anpassung.


Top