13. Kapan Harus Digunakan
13. Kapan Harus Digunakan
-
Strict Concurrency dari awal: Untuk project baru, aktifkan
-strict-concurrency=completesejak hari pertama. Jauh lebih mudah dari yang dibayangkan jika dimulai lebih awal daripada diretrofit. -
Actor untuk semua shared mutable state: Setiap kali ada state yang mungkin diakses dari lebih dari satu Task atau thread, gunakan actor. Biaya overhead actor sangat kecil dibandingkan risiko data race.
-
Sendable verification di API boundary: Saat menulis library atau module yang digunakan oleh bagian lain codebase, pastikan semua parameter dan return values di async function adalah Sendable. Ini mencegah data race propagate ke konsumen.
-
Thread Sanitizer di CI: Bahkan dengan Swift 6, aktifkan TSan untuk mendeteksi race yang melalui
@unchecked Sendableatau C/ObjC boundary yang tidak bisa diverifikasi compiler. -
sendinguntuk transfer non-Sendable: Ketika kamu perlu melewatkan non-Sendable value ke actor (misalnya large mutable buffer), gunakansendinguntuk transfer ownership yang aman.