Skip to content

Commit df8f4a8

Browse files
CopilotCopilot
andcommitted
Add Turkish (tr) translations for streams, strings, and tooling patterns
- 11 streams files: collectors-flatmapping, optional-ifpresentorelse, optional-or, predicate-not, stream-gatherers, stream-iterate-predicate, stream-mapmulti, stream-of-nullable, stream-takewhile-dropwhile, stream-tolist, virtual-thread-executor - 7 strings files: string-chars-stream, string-formatted, string-indent-transform, string-isblank, string-lines, string-repeat, string-strip - 8 tooling files: aot-class-preloading, built-in-http-server, compact-object-headers, jfr-profiling, jshell-prototyping, junit6-with-jspecify, multi-file-source, single-file-execution Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 706e75a commit df8f4a8

26 files changed

+468
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Collectors.flatMapping()"
3+
oldApproach: İç içe flatMap
4+
modernApproach: "flatMapping()"
5+
summary: "Gruplama toplayıcısının içinde düzleştirme yapmak için flatMapping() kullanın."
6+
explanation: "Collectors.flatMapping(), bir bire-çok eşlemeyi aşağı akış toplayıcısı olarak uygular. Stream.flatMap() işlevinin toplayıcı karşılığıdır — groupingBy veya partitioningBy içinde kullanışlıdır."
7+
whyModernWins:
8+
- icon: "🧩"
9+
title: Birleştirilebilir
10+
desc: "groupingBy içinde aşağı akış toplayıcısı olarak çalışır."
11+
- icon: "📐"
12+
title: Tek geçiş
13+
desc: "Tek bir akış geçişinde düzleştirme ve gruplama yapılır."
14+
- icon: "🔗"
15+
title: İç içe kullanılabilir
16+
desc: "Diğer aşağı akış toplayıcılarıyla birleştirilebilir."
17+
support:
18+
description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Optional.ifPresentOrElse()"
3+
oldApproach: Optional üzerinde if/else
4+
modernApproach: "ifPresentOrElse()"
5+
summary: "Optional'ın hem mevcut hem de boş durumlarını tek bir çağrıda işleyin."
6+
explanation: "ifPresentOrElse(), mevcut durum için bir Consumer ve boş durum için bir Runnable alır. isPresent/get anti-deseninden kaçınılmasını sağlar."
7+
whyModernWins:
8+
- icon: "📏"
9+
title: Tek ifade
10+
desc: "Her iki durum tek bir metot çağrısında işlenir."
11+
- icon: "🚫"
12+
title: "get() yok"
13+
desc: "Tehlikeli isPresent() + get() desenini ortadan kaldırır."
14+
- icon: "🔗"
15+
title: Akıcı
16+
desc: "findUser() veya Optional döndüren herhangi bir metodun ardından doğal olarak zincirlenir."
17+
support:
18+
description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Optional.or() ile yedekleme"
3+
oldApproach: İç içe yedekleme
4+
modernApproach: ".or() zinciri"
5+
summary: "İç içe kontroller olmadan Optional yedeklerini zincirleyin."
6+
explanation: "Optional.or(), orijinal Optional'ın bir değeri varsa onu döndürür; yoksa alternatif bir Optional elde etmek için tedarikçiyi değerlendirir. Tedarikçiler gecikmeli çalışır — yalnızca gerektiğinde çağrılır."
7+
whyModernWins:
8+
- icon: "🔗"
9+
title: Zincirlenebilir
10+
desc: "Okunabilir bir boru hattında yedekler arka arkaya eklenir."
11+
- icon: ""
12+
title: Gecikmeli değerlendirme
13+
desc: "Yedek tedarikçiler yalnızca gerekli olduğunda çalışır."
14+
- icon: "📖"
15+
title: Bildirimsel
16+
desc: "'önce birincili dene, yoksa ikincili, yoksa varsayılanı' şeklinde okunur."
17+
support:
18+
description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Predicate.not() ile olumsuzlama"
3+
oldApproach: Lambda olumsuzlama
4+
modernApproach: "Predicate.not()"
5+
summary: "Lambda sarmalayıcılar yazmak yerine metot referanslarını temiz biçimde olumsuzlamak için Predicate.not() kullanın."
6+
explanation: "Java 11'den önce bir metot referansını olumsuzlamak için onu bir lambda içine sarmak gerekiyordu. Predicate.not(), herhangi bir koşulu doğrudan olumsuzlamanıza olanak tanır; bu sayede kod okunabilirliği korunur ve akış hattı boyunca metot referansı stiliyle tutarlılık sağlanır."
7+
whyModernWins:
8+
- icon: "👁"
9+
title: Daha temiz olumsuzlama
10+
desc: "Metot referanslarını olumsuzlamak için lambda içine sarmaya gerek kalmaz."
11+
- icon: "🔗"
12+
title: Birleştirilebilir
13+
desc: "Her Predicate ile çalışır; temiz koşul zincirleri oluşturmayı sağlar."
14+
- icon: "📖"
15+
title: Doğal okunur
16+
desc: "Predicate.not(String::isBlank) İngilizce gibi okunur."
17+
support:
18+
description: "JDK 11'den itibaren kullanılabilir (Eylül 2018)."
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Stream toplayıcıları
3+
oldApproach: Özel Collector
4+
modernApproach: "gather()"
5+
summary: "Özel ara akış işlemleri için toplayıcılar kullanın."
6+
explanation: "Toplayıcılar (Gatherers), kayan pencereler, sabit boyutlu gruplar ve standart akış işlemleriyle mümkün olmayan tarama işlemleri gibi karmaşık dönüşümleri ifade edebilen yeni bir ara akış işlemidir."
7+
whyModernWins:
8+
- icon: "🧩"
9+
title: Birleştirilebilir
10+
desc: "Toplayıcılar diğer akış işlemleriyle birleştirilebilir."
11+
- icon: "📦"
12+
title: Yerleşik işlemler
13+
desc: "windowFixed, windowSliding, fold ve scan kullanıma hazır gelir."
14+
- icon: "🔧"
15+
title: Genişletilebilir
16+
desc: "Herhangi bir ara dönüşüm için özel toplayıcılar yazılabilir."
17+
support:
18+
description: "JDK 24'te tamamlandı (JEP 485, Mart 2025)."
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Koşullu Stream.iterate()"
3+
oldApproach: iterate + limit
4+
modernApproach: "iterate(seed, pred, op)"
5+
summary: "Akış biçiminde bir döngü gibi yinelemeyi durdurmak için koşul kullanın."
6+
explanation: "Üç argümanlı Stream.iterate(seed, hasNext, next), bir for döngüsü gibi çalışır: seed başlangıç değeri, hasNext ne zaman duracağını belirler ve next sonraki değeri üretir."
7+
whyModernWins:
8+
- icon: "🎯"
9+
title: Doğal sonlandırma
10+
desc: "Keyfi bir sınır değil, bir koşula göre durun."
11+
- icon: "📐"
12+
title: "for döngüsü karşılığı"
13+
desc: "for(seed; hasNext; next) ile aynı anlambilim."
14+
- icon: "🛡️"
15+
title: Sonsuz akış riski yok
16+
desc: "Koşul, sonlandırmayı garanti eder."
17+
support:
18+
description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Stream.mapMulti()"
3+
oldApproach: "flatMap + List"
4+
modernApproach: "mapMulti()"
5+
summary: "Ara akışlar oluşturmadan her giriş için sıfır veya daha fazla öğe yayın."
6+
explanation: "mapMulti(), her öğe için ara Stream nesneleri oluşturmaktan kaçınan, flatMap'e alternatif bir zorunlu yöntemdir. Eşlemenin az sayıda öğe ürettiği durumlarda daha verimlidir."
7+
whyModernWins:
8+
- icon: ""
9+
title: Daha az bellek kullanımı
10+
desc: "Her öğe için ara Stream oluşturulmaz."
11+
- icon: "🎯"
12+
title: Zorunlu stil
13+
desc: "Döngüler ve koşullar doğrudan kullanılabilir."
14+
- icon: "📐"
15+
title: Esnek
16+
desc: "Tam denetimle sıfır, bir veya çok sayıda öğe yayılabilir."
17+
support:
18+
description: "JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Stream.ofNullable()"
3+
oldApproach: Null Kontrolü
4+
modernApproach: "ofNullable()"
5+
summary: "Null olabilecek bir değerden sıfır veya bir öğeli akış oluşturun."
6+
explanation: "Stream.ofNullable(), değer null değilse tek öğeli, null ise boş bir akış döndürür. Üçlü null kontrol desenini ortadan kaldırır."
7+
whyModernWins:
8+
- icon: "📏"
9+
title: Özlü
10+
desc: "Tek bir çağrı üçlü koşulun yerini alır."
11+
- icon: "🔗"
12+
title: "flatMap uyumlu"
13+
desc: "flatMap içinde null değerleri atlamak için mükemmeldir."
14+
- icon: "🛡️"
15+
title: Null-güvenli
16+
desc: "NPE riski yok — null boş akışa dönüşür."
17+
support:
18+
description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Stream takeWhile / dropWhile"
3+
oldApproach: Manuel Döngü
4+
modernApproach: takeWhile/dropWhile
5+
summary: "Bir koşula göre akıştan öğeleri alın veya atlayın."
6+
explanation: "takeWhile(), koşul doğru olduğu sürece öğeleri döndürür ve ilk yanlışta durur. dropWhile() ise koşul doğru olduğu sürece öğeleri atlar ve kalanları döndürür. Her ikisi de sıralı akışlarda en iyi çalışır."
7+
whyModernWins:
8+
- icon: "🎯"
9+
title: Kısa devre
10+
desc: "Koşul başarısız olduğunda işlemi durur."
11+
- icon: "🔗"
12+
title: Boru hattı uyumlu
13+
desc: "Diğer akış işlemleriyle doğal biçimde zincirlenir."
14+
- icon: "📖"
15+
title: Bildirimsel
16+
desc: "takeWhile 'koşul sağlandığı sürece al' şeklinde okunur."
17+
support:
18+
description: "JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Stream.toList()"
3+
oldApproach: "Collectors.toList()"
4+
modernApproach: ".toList()"
5+
summary: "Terminal toList(), ayrıntılı collect(Collectors.toList()) çağrısının yerini alır."
6+
explanation: "Stream.toList(), değiştirilemez bir liste döndürür. .collect(Collectors.toUnmodifiableList()) ile eşdeğerdir ancak çok daha kısadır. Not: Collectors.toList()'in aksine sonuç sabittir."
7+
whyModernWins:
8+
- icon: "📏"
9+
title: "7 karakter, 24 değil"
10+
desc: ".toList(), .collect(Collectors.toList()) ifadesinin yerini alır."
11+
- icon: "🔒"
12+
title: Değiştirilemez
13+
desc: "Sonuç liste değiştirilemez."
14+
- icon: "📖"
15+
title: Akıcı
16+
desc: "Boru hattının sonunda doğal biçimde okunur."
17+
support:
18+
description: "JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)"

0 commit comments

Comments
 (0)