Skip to content

Commit f25e63e

Browse files
CopilotCopilot
andcommitted
Add Japanese translations for concurrency, io, and errors categories
Create 27 YAML translation files covering all patterns in: - translations/content/ja/concurrency/ (10 files) - translations/content/ja/io/ (10 files) - translations/content/ja/errors/ (7 files) Each file contains translated title, oldApproach, modernApproach, summary, explanation, whyModernWins (3 entries with icons), and support.description. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 904d5da commit f25e63e

27 files changed

+459
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: CompletableFutureのチェーン
2+
oldApproach: ブロッキングFuture.get()
3+
modernApproach: CompletableFuture
4+
summary: "CompletableFutureを使ってブロッキングなしに非同期操作をチェーンする。"
5+
explanation: "CompletableFutureはノンブロッキングな非同期パイプラインを実現します。thenApply、thenCompose、thenAcceptで操作をチェーンし、exceptionally()でエラーを処理します。allOf/anyOfで複数のFutureを組み合わせられます。"
6+
whyModernWins:
7+
- icon: "🔗"
8+
title: チェーン可能
9+
desc: "非同期のステップを可読なパイプラインに組み合わせられます。"
10+
- icon: "🚫"
11+
title: ノンブロッキング
12+
desc: "結果待ちでスレッドがアイドルになりません。"
13+
- icon: "🛡️"
14+
title: エラーハンドリング
15+
desc: "exceptionally()とhandle()でクリーンなエラー回復が可能です。"
16+
support:
17+
description: "JDK 8(2014年3月)以降、広く利用可能"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: バーチャルスレッドによる並行HTTP処理
2+
oldApproach: スレッドプール + URLConnection
3+
modernApproach: バーチャルスレッド + HttpClient
4+
summary: "バーチャルスレッドとHttpClientを使って多数のURLを並行取得する。"
5+
explanation: "バーチャルスレッドにより、HTTPリクエストごとにスレッドを作成することが実用的になります。HttpClientと組み合わせることで、複雑な非同期コールバックパターンを、スケールするシンプルなブロッキングコードに置き換えられます。"
6+
whyModernWins:
7+
- icon: "♾️"
8+
title: リクエストごとのスレッド
9+
desc: "プールのサイジング不要 — URLごとに1バーチャルスレッド。"
10+
- icon: "📖"
11+
title: シンプルなコード
12+
desc: "わかりやすいブロッキングコードをそのまま書けます。"
13+
- icon: ""
14+
title: 高スループット
15+
desc: "最小限のリソースで何千もの並行リクエストを処理できます。"
16+
support:
17+
description: "JDK 21 LTS(2023年9月)以降、広く利用可能"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: ExecutorServiceの自動クローズ
2+
oldApproach: 手動シャットダウン
3+
modernApproach: try-with-resources
4+
summary: "try-with-resourcesを使ってエグゼキュータを自動シャットダウンする。"
5+
explanation: "Java 19以降、ExecutorServiceはAutoCloseableを実装しています。close()メソッドはshutdown()を呼び出し、タスクの完了を待機します。手動のtry/finallyシャットダウンパターンは不要になりました。"
6+
whyModernWins:
7+
- icon: "🧹"
8+
title: 自動クリーンアップ
9+
desc: "ブロックを抜けると自動的にシャットダウンされます。"
10+
- icon: "🛡️"
11+
title: リークなし
12+
desc: "例外が発生してもエグゼキュータは常にシャットダウンされます。"
13+
- icon: "📖"
14+
title: 使い慣れたパターン
15+
desc: "ファイルや接続などで使われるtry-with-resourcesと同じです。"
16+
support:
17+
description: "JDK 19(2022年9月)以降、広く利用可能"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: ロックフリーな遅延初期化
2+
oldApproach: synchronized + volatile
3+
modernApproach: StableValue
4+
summary: "ダブルチェックロッキングをStableValueで置き換えて遅延シングルトンを実現する。"
5+
explanation: "StableValueは正しいスレッド安全性を持つ遅延初期化パターンをカプセル化します。JVMは初期化後の読み取りパスを最適化でき、volatileの読み取りより高速になる可能性があります。"
6+
whyModernWins:
7+
- icon: "🧹"
8+
title: ボイラープレートなし
9+
desc: "volatile、synchronized、ダブルnullチェック不要。"
10+
- icon: ""
11+
title: 高速な読み取り
12+
desc: "JVMは初期化後に値を定数畳み込みできます。"
13+
- icon: ""
14+
title: 証明済みの正確さ
15+
desc: "微妙な順序付けバグなし — JVMが処理します。"
16+
support:
17+
description: "JDK 25でプレビュー(JEP 502、StableValue)。--enable-previewが必要です。"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: モダンなProcess API
2+
oldApproach: Runtime.exec()
3+
modernApproach: ProcessHandle
4+
summary: "ProcessHandleを使ってOSプロセスを検査・管理する。"
5+
explanation: "ProcessHandleはPID、プロセス情報(コマンド、引数、開始時刻、CPU使用率)、親子関係、プロセスの終了機能を提供します。undocumentedなProcessの内部機構は不要になります。"
6+
whyModernWins:
7+
- icon: "🔍"
8+
title: 完全な情報
9+
desc: "PID、コマンド、引数、開始時刻、CPU使用率にアクセスできます。"
10+
- icon: "🌳"
11+
title: プロセスツリー
12+
desc: "親、子、子孫プロセスをナビゲートできます。"
13+
- icon: "📊"
14+
title: モニタリング
15+
desc: "onExit()は非同期モニタリング用のCompletableFutureを返します。"
16+
support:
17+
description: "JDK 9(2017年9月)以降、広く利用可能"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: スコープ付き値
2+
oldApproach: ThreadLocal
3+
modernApproach: ScopedValue
4+
summary: "ThreadLocalの問題なしにコールスタック間でデータを安全に共有する。"
5+
explanation: "ScopedValueはイミュータブルで継承可能なスコープ限定のコンテキストを提供します。ThreadLocalとは異なり、スコープ付き値は自動的にクリーンアップされ、バーチャルスレッドで動作し、呼び出し先から変更できません。"
6+
whyModernWins:
7+
- icon: "🔒"
8+
title: イミュータブル
9+
desc: "呼び出し先はスコープ付き値を読み取ることはできますが、変更はできません。"
10+
- icon: "🧹"
11+
title: 自動クリーンアップ
12+
desc: "手動のremove()不要 — 値はブロックにスコープされます。"
13+
- icon: ""
14+
title: バーチャルスレッド対応
15+
desc: "何百万ものバーチャルスレッドで効率的に動作します。"
16+
support:
17+
description: "JDK 25 LTSで正式リリース(JEP 506、2025年9月)。"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: 安定した値
2+
oldApproach: ダブルチェックロッキング
3+
modernApproach: StableValue
4+
summary: "volatileやsynchronizedなしにスレッドセーフな遅延初期化を実現する。"
5+
explanation: "StableValueは組み込みのスレッド安全性を持つ遅延初期化されたイミュータブルな値を提供します。ダブルチェックロッキング、volatileフィールド、synchronizedブロックは不要です。JVMは初期化後の読み取りパスを最適化することもできます。"
6+
whyModernWins:
7+
- icon: "🧹"
8+
title: ボイラープレートゼロ
9+
desc: "volatile、synchronized、nullチェックが不要。"
10+
- icon: ""
11+
title: JVM最適化
12+
desc: "JVMは初期化後に値を畳み込める。"
13+
- icon: "🛡️"
14+
title: 確実な1回実行
15+
desc: "サプライヤは競合状態でも必ず1回だけ実行されます。"
16+
support:
17+
description: "JDK 25でプレビュー(JEP 502)。--enable-previewが必要です。"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: 構造化並行処理
2+
oldApproach: 手動スレッドライフサイクル管理
3+
modernApproach: StructuredTaskScope
4+
summary: "並行タスクのライフタイムを単一の作業単位として管理する。"
5+
explanation: "構造化並行処理は、並行タスクのグループを1つの操作として扱います。いずれかのサブタスクが失敗した場合、他のサブタスクはキャンセルされます。スコープによりスレッドリークがなくなり、明確な親子関係が保たれます。"
6+
whyModernWins:
7+
- icon: "🛡️"
8+
title: スレッドリークなし
9+
desc: "フォークされたタスクはすべてスコープが閉じる前に完了します。"
10+
- icon: ""
11+
title: 高速フェイル
12+
desc: "ShutdownOnFailureは1つが失敗すると兄弟タスクをキャンセルします。"
13+
- icon: "📐"
14+
title: 明確な構造
15+
desc: "タスクのライフタイムはコードのレキシカルスコープと一致します。"
16+
support:
17+
description: "JDK 25でプレビュー(第5プレビュー、JEP 505)。--enable-previewが必要です。"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: "Duration指定のThread.sleep"
2+
oldApproach: ミリ秒指定
3+
modernApproach: Duration指定
4+
summary: "Durationを使って自己文書化された時間値を指定する。"
5+
explanation: "Thread.sleep(Duration)は時間単位を明示的にします。5000がミリ秒かマイクロ秒か迷う必要はありません。Duration.ofSeconds、ofMillis、ofMinutesなどと組み合わせて使えます。"
6+
whyModernWins:
7+
- icon: "📖"
8+
title: 自己文書化
9+
desc: "Duration.ofSeconds(5)は曖昧さがありません。"
10+
- icon: "🛡️"
11+
title: 単位安全
12+
desc: "マイクロ秒をミリ秒として誤って渡すことがなくなります。"
13+
- icon: "🧩"
14+
title: 組み合わせ可能
15+
desc: "Duration演算:plus()、multipliedBy()などが使えます。"
16+
support:
17+
description: "JDK 19(2022年9月)以降、広く利用可能"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: バーチャルスレッド
2+
oldApproach: プラットフォームスレッド
3+
modernApproach: バーチャルスレッド
4+
summary: "重いOSスレッドの代わりに、何百万もの軽量なバーチャルスレッドを作成する。"
5+
explanation: "バーチャルスレッドはOSではなくJVMが管理する軽量スレッドです。スレッドプールのチューニングなしに何百万も作成できます。HTTPコールやデータベースクエリなどのI/Oバウンドタスクに最適です。"
6+
whyModernWins:
7+
- icon: ""
8+
title: 軽量
9+
desc: "バーチャルスレッドはKBのメモリを使用し、プラットフォームスレッドはMBを使用します。"
10+
- icon: "♾️"
11+
title: スケーラブル
12+
desc: "何百万ものスレッドを作成可能 — プールのサイジング不要。"
13+
- icon: "🧹"
14+
title: シンプルなモデル
15+
desc: "非同期コードのようにスケールするブロッキングコードを書けます。"
16+
support:
17+
description: "JDK 21 LTS(2023年9月)以降、広く利用可能"

0 commit comments

Comments
 (0)