Section 13/161 menit

13. Kapan Harus Digunakan

13. Kapan Harus Digunakan

  • Strict Concurrency dari awal: Untuk project baru, aktifkan -strict-concurrency=complete sejak 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 Sendable atau C/ObjC boundary yang tidak bisa diverifikasi compiler.

  • sending untuk transfer non-Sendable: Ketika kamu perlu melewatkan non-Sendable value ke actor (misalnya large mutable buffer), gunakan sending untuk transfer ownership yang aman.