Skip to content

Commit 750759d

Browse files
CopilotCopilot
andcommitted
Add German (de) translations for security, streams, strings, and tooling patterns
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 58315c7 commit 750759d

31 files changed

+622
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Schlüsselableitungsfunktionen
2+
oldApproach: Manuelles PBKDF2
3+
modernApproach: KDF-API
4+
summary: Kryptografische Schlüssel mit der Standard-KDF-API ableiten.
5+
explanation: Die KDF-API bietet eine standardisierte Schnittstelle für Schlüsselableitungsfunktionen
6+
einschließlich HKDF. Sie ersetzt das umständliche Muster aus SecretKeyFactory und
7+
PBEKeySpec durch eine saubere Builder-API.
8+
whyModernWins:
9+
- icon: 📐
10+
title: Saubere API
11+
desc: Builder-Muster statt umständlicher KeySpec-Konstruktoren.
12+
- icon: 🔧
13+
title: HKDF-Unterstützung
14+
desc: Moderner HKDF-Algorithmus neben PBKDF2.
15+
- icon: 🛡️
16+
title: Standard
17+
desc: Einheitliche API für alle Schlüsselableitungsalgorithmen.
18+
support:
19+
description: In JDK 25 LTS finalisiert (JEP 510, Sept. 2025).
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: PEM-Kodierung/Dekodierung
2+
oldApproach: Manuelles Base64 + Header
3+
modernApproach: PEM-API
4+
summary: Kryptografische Objekte im PEM-Format nativ kodieren und dekodieren.
5+
explanation: Die PEM-API bietet standardisierte Kodierung/Dekodierung für Zertifikate,
6+
Schlüssel und andere kryptografische Objekte im PEM-Format. Kein manuelles Base64-Wrapping
7+
mit BEGIN/END-Headern mehr.
8+
whyModernWins:
9+
- icon: 🧹
10+
title: Kein manuelles Base64
11+
desc: PEM-Header, Zeilenumbruch und Base64 werden automatisch behandelt.
12+
- icon: 🔄
13+
title: Bidirektional
14+
desc: Mit einer API zu PEM kodieren und von PEM dekodieren.
15+
- icon: 🛡️
16+
title: Standardformat
17+
desc: Erzeugt RFC 7468-konformes PEM-Ausgabeformat.
18+
support:
19+
description: Vorschau in JDK 25 (JEP 470). Erfordert --enable-preview.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
title: RandomGenerator-Interface
2+
oldApproach: new Random() / ThreadLocalRandom
3+
modernApproach: RandomGenerator-Factory
4+
summary: Das RandomGenerator-Interface verwenden, um Zufallszahlenalgorithmen per
5+
Name auszuwählen, ohne an eine bestimmte Klasse gebunden zu sein.
6+
explanation: JDK 17 führte RandomGenerator als gemeinsames Interface für alle RNG-Implementierungen
7+
ein. Statt new Random() oder ThreadLocalRandom fest zu kodieren, können Algorithmen
8+
per Name über eine Factory ausgewählt werden, was den Wechsel zwischen für unterschiedliche
9+
Anwendungsfälle optimierten Algorithmen erleichtert (Geschwindigkeit, statistische
10+
Qualität, Teilbarkeit).
11+
whyModernWins:
12+
- icon: 🔧
13+
title: Algorithmus-agnostisch
14+
desc: Den besten RNG-Algorithmus per Name wählen, ohne die Codestruktur zu ändern.
15+
- icon:
16+
title: Bessere Algorithmen
17+
desc: Zugang zu modernen LXM-Generatoren mit überlegenen statistischen Eigenschaften.
18+
- icon: 🔗
19+
title: Einheitliche API
20+
desc: Eine Schnittstelle für Random, ThreadLocalRandom, SplittableRandom und mehr.
21+
support:
22+
description: Verfügbar seit JDK 17 (September 2021, JEP 356).
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
title: Starke Zufallszahlengenerierung
2+
oldApproach: new SecureRandom()
3+
modernApproach: getInstanceStrong()
4+
summary: Die stärkste SecureRandom-Implementierung der Plattform abrufen.
5+
explanation: getInstanceStrong() gibt die SecureRandom-Implementierung zurück, die
6+
auf der Plattform als die stärkste konfiguriert ist. Dies wird durch die Sicherheitseigenschaft
7+
securerandom.strongAlgorithms gesteuert.
8+
whyModernWins:
9+
- icon: 🛡️
10+
title: Stärkste verfügbare
11+
desc: Wählt automatisch den besten Algorithmus für die Plattform.
12+
- icon: 📖
13+
title: Explizite Absicht
14+
desc: Kommuniziert klar, dass starke Zufälligkeit erforderlich ist.
15+
- icon: 🔧
16+
title: Konfigurierbar
17+
desc: Administratoren können den starken Algorithmus über Sicherheitseigenschaften
18+
ändern.
19+
support:
20+
description: Weitgehend verfügbar seit JDK 9 (Sept. 2017)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
title: TLS 1.3 als Standard
2+
oldApproach: Manuelle TLS-Konfiguration
3+
modernApproach: TLS 1.3 als Standard
4+
summary: "TLS 1.3 ist standardmäßig aktiviert — keine explizite Protokollkonfiguration\
5+
\ erforderlich."
6+
explanation: Java 11 hat TLS 1.3-Unterstützung hinzugefügt und es zum bevorzugten
7+
Protokoll gemacht. Der HttpClient verwendet es automatisch. Keine manuelle Angabe
8+
von Protokollversionen für sichere Verbindungen mehr.
9+
whyModernWins:
10+
- icon: 🛡️
11+
title: Sicherer
12+
desc: TLS 1.3 entfernt veraltete Cipher-Suites und Handshake-Muster.
13+
- icon:
14+
title: Schnellerer Handshake
15+
desc: TLS 1.3 wird in einem statt zwei Roundtrips abgeschlossen.
16+
- icon: 🆓
17+
title: Keine Konfiguration
18+
desc: "Standardmäßig sicher — keine explizite Protokollauswahl erforderlich."
19+
support:
20+
description: Weitgehend verfügbar seit JDK 11 (Sept. 2018)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Collectors.flatMapping()
2+
oldApproach: Verschachteltes flatMap
3+
modernApproach: flatMapping()
4+
summary: flatMapping() zum Abflachen innerhalb eines Gruppierungs-Collectors verwenden.
5+
explanation: Collectors.flatMapping() wendet eine Eins-zu-viele-Abbildung als nachgelagerten
6+
Collector an. Es ist das Collector-Äquivalent von Stream.flatMap() – nützlich innerhalb
7+
von groupingBy oder partitioningBy.
8+
whyModernWins:
9+
- icon: 🧩
10+
title: Kombinierbar
11+
desc: Funktioniert als nachgelagerter Collector innerhalb von groupingBy.
12+
- icon: 📐
13+
title: Einmaliger Durchlauf
14+
desc: Abflachen und Gruppieren in einem einzigen Stream-Durchlauf.
15+
- icon: 🔗
16+
title: Verschachtelbar
17+
desc: Lässt sich mit anderen nachgelagerten Collectors kombinieren.
18+
support:
19+
description: Weitgehend verfügbar seit JDK 9 (Sept. 2017)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Optional.ifPresentOrElse()
2+
oldApproach: if/else auf Optional
3+
modernApproach: ifPresentOrElse()
4+
summary: Beide Fälle eines Optional – vorhanden und leer – in einem einzigen Aufruf
5+
behandeln.
6+
explanation: ifPresentOrElse() nimmt einen Consumer für den vorhandenen Fall und ein
7+
Runnable für den leeren Fall. Es vermeidet das isPresent/get-Antimuster.
8+
whyModernWins:
9+
- icon: 📏
10+
title: Einzelner Ausdruck
11+
desc: Beide Fälle werden in einem Methodenaufruf behandelt.
12+
- icon: 🚫
13+
title: Kein get()
14+
desc: Eliminiert das gefährliche isPresent() + get()-Muster.
15+
- icon: 🔗
16+
title: Fließend
17+
desc: Kettet sich natürlich nach findUser() oder jeder Optional-zurückgebenden Methode.
18+
support:
19+
description: Weitgehend verfügbar seit JDK 9 (Sept. 2017)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Optional.or() als Fallback
2+
oldApproach: Verschachtelter Fallback
3+
modernApproach: .or()-Kette
4+
summary: Optional-Fallbacks ohne verschachtelte Prüfungen verketten.
5+
explanation: Optional.or() gibt das ursprüngliche Optional zurück, wenn es einen Wert
6+
hat, andernfalls wird der Supplier ausgewertet, um ein alternatives Optional zu
7+
erhalten. Suppliers sind lazy – sie werden nur bei Bedarf aufgerufen.
8+
whyModernWins:
9+
- icon: 🔗
10+
title: Verkettbar
11+
desc: Fallbacks in einer lesbaren Pipeline stapeln.
12+
- icon:
13+
title: Lazy-Auswertung
14+
desc: Fallback-Supplier werden nur bei Bedarf ausgeführt.
15+
- icon: 📖
16+
title: Deklarativ
17+
desc: "Liest sich wie 'versuche primär, oder sekundär, oder Standard'."
18+
support:
19+
description: Weitgehend verfügbar seit JDK 9 (Sept. 2017)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
title: Predicate.not() zur Negation
2+
oldApproach: Lambda-Negation
3+
modernApproach: Predicate.not()
4+
summary: Predicate.not() verwenden, um Methodenreferenzen sauber zu negieren, statt
5+
Lambda-Wrapper zu schreiben.
6+
explanation: Vor Java 11 musste eine Methodenreferenz zur Negation in ein Lambda eingewickelt
7+
werden. Predicate.not() ermöglicht die direkte Negation eines beliebigen Prädikats,
8+
was den Code lesbar und konsistent mit dem Methodenreferenz-Stil im gesamten Stream-Pipeline
9+
hält.
10+
whyModernWins:
11+
- icon: 👁
12+
title: Sauberere Negation
13+
desc: Keine Lambda-Wrapper für Methodenreferenzen nur zur Negation nötig.
14+
- icon: 🔗
15+
title: Kombinierbar
16+
desc: Funktioniert mit jedem Predicate und ermöglicht saubere Prädikat-Ketten.
17+
- icon: 📖
18+
title: Natürlich lesbar
19+
desc: Predicate.not(String::isBlank) liest sich wie natürliche Sprache.
20+
support:
21+
description: Verfügbar seit JDK 11 (September 2018).
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Stream-Gatherers
2+
oldApproach: Benutzerdefinierter Collector
3+
modernApproach: gather()
4+
summary: Gatherers für benutzerdefinierte Zwischen-Stream-Operationen verwenden.
5+
explanation: Gatherers sind eine neue Zwischen-Stream-Operation, die komplexe Transformationen
6+
wie gleitende Fenster, Gruppen fester Größe und Scan-Operationen ausdrücken kann,
7+
die mit Standard-Stream-Operationen nicht möglich waren.
8+
whyModernWins:
9+
- icon: 🧩
10+
title: Kombinierbar
11+
desc: Gatherers lassen sich mit anderen Stream-Operationen kombinieren.
12+
- icon: 📦
13+
title: Eingebaute Operationen
14+
desc: windowFixed, windowSliding, fold, scan sofort verfügbar.
15+
- icon: 🔧
16+
title: Erweiterbar
17+
desc: Eigene Gatherers für beliebige Zwischentransformationen schreiben.
18+
support:
19+
description: In JDK 24 finalisiert (JEP 485, März 2025).

0 commit comments

Comments
 (0)