swift-actor-persistence
Swiftでactorを使用してスレッドセーフなデータ永続化を実装する——メモリキャッシュとファイルバックドストレージを組み合わせ、設計によってデータ競合を排除する。
原文 · 译文未通过检查适用对象:对象待分类。自动收录 · 待核查。
原作者说明节选
从固定版本的 SKILL.md 提取,保留原文语言。以下内容属于作者说明,本站尚未验证安装、兼容或运行结果。
查看日文原文
原文涵盖的主题
- スレッドセーフな永続化のための Swift Actor
- 起動条件
- コアパターン
- Actorベースのリポジトリ
- 使い方
- @Observable ViewModel との組み合わせ
- 重要な設計上の決定
- ベストプラクティス
Swiftのactorを使用してスレッドセーフなデータ永続化レイヤーを構築するパターン。メモリキャッシュとファイルバックドストレージを組み合わせ、actorモデルを活用してコンパイル時にデータ競合を排除する。 Swift 5.5以降でデータ永続化レイヤーを構築する場合 共有可変状態へのスレッドセーフアクセスが必要な場合 手動の同期(ロック、DispatchQueue)を排除したい場合 ローカルストレージを持つオフラインファースとアプリを構築する場合 Actorモデルはシリアライズされたアクセスを保証する——コンパイラによって強制されるデータ競合なし。 Actorの分離により、すべての呼び出しは自動的に非同期になる: | 決定 | 理由 | |----------|-----------| | Actorを使用(クラス + ロックではなく) | コンパイラによって強制されるスレッド安全性、手動同期不要 | | メモリキャッシュ + ファイル永続化 | キャッシュからの高速読み取り、ディスクへの永続的な書き込み | | 初期化時の同期ロード | 非同期初期化の複雑さを回避 | | IDをキーとする辞書 | 識別子によるO(1)検索 | | ジェネリック Codable & Identifiable | あらゆるモデル型で再利用可能 | | アトミックなファイル書き込み(.atomic) | クラッシュ時の部分書き込みを防ぐ | Actorの境界を越えるすべてのデータに Sendable 型を使用する Actorのパブリックなアビリティを最小化する —— 永続化の詳細ではなく、ドメイン操作のみを公開する .atomic 書き込みを使用する —— 書き込み中のアプリクラッシュによるデータ破損を防ぐ init で同期的にロードする —— 非同期イニシャライザはローカルファイルに対するわずかな利点のために複雑さが増す @Observable ViewModelと組み合わせる —— リアクティブなUI更新を実現する Swiftの新しい並行処理コードでActorの代わりに DispatchQueue または NSLock を使用する 内部のキャッシュ辞書を外部の呼び出し元に公開する 初期化後にファイルURLを外部から変更可能にする(初期化時のみ設定を許可すること) すべてのActor メソッド呼び出しが await であることを忘れる——呼び出し元は非同期コンテキストを処理する必要がある Actor の分離をバイパスするために nonisolated を使用する(本末転倒) iOS/macOSアプリのローカルデータストレージ(ユーザーデータ、設定、キャッシュコンテンツ) 後でサーバーと同期するオフラインファーストアーキテクチャ アプリの複数の部分から並行アクセスされる共有可
这里只展示节选,请以完整原文和当前要求为准。
- 来源仓库
- affaan-m/ECC
- 源文件
- docs/ja-JP/skills/swift-actor-persistence/SKILL.md
- 固定版本
- d2ef2680594f9a17526a6e1a2e18b3d242c5d17b
来源与内容状态
本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。
原作者:affaan-m/ECC · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-09T14:01:49.739Z。
分类由名称、说明与路径规则生成,分类不代表已核实适配。
许可与权利归属
MIT。第三方内容及版权归原作者,使用条件以原文为准。
许可原文 ↗本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。
限制与注意事项
- 元数据收录不代表本站已经安装、适配、实测或进行安全审查。