Kotlin coroutines có thể được sử dụng trong sản xuất không, và tình trạng thử nghiệm của chúng có ý nghĩa gì?
Kotlin coroutines có thể được sử dụng trong sản xuất không, và tình trạng thử nghiệm của chúng có ý nghĩa gì?
Câu trả lời:
CẬP NHẬT : Kotlin coroutines không còn thử nghiệm kể từ Kotlin 1.3.
Kotlin coroutines có thể và nên được sử dụng trong sản xuất. Đó là lý do chính để chính thức phát hành chúng trong Kotlin 1.1. Sau khi phát hành chúng, nhóm JetBrains đã cam kết duy trì khả năng tương thích ngược đối với bất kỳ thay đổi nào được giới thiệu trong các bản phát hành nhỏ khi chúng phát triển, đồng thời cho phép mọi người thử chúng một cách an toàn trong các ứng dụng sản xuất phức tạp.
Nói tóm lại, sự khác biệt giữa các tính năng “thử nghiệm” và “bình thường” là đối với các tính năng Kotlin thông thường không thể thêm nội dung mới trong các bản cập nhật nhỏ, vì có đảm bảo "tương thích hoàn toàn", trong khi đối với các tính năng thử nghiệm, công cụ mới có thể được thêm vào, nhưng không thể loại bỏ được gì (vì đảm bảo tính tương thích ngược).
Các coroutines thử nghiệm sử dụng một kotlin.coroutines.experimental
tên gói riêng biệt , để khi thiết kế coroutines được hoàn thiện và chúng chuyển sang kotlin.coroutines
gói, mã đã biên dịch cũ sẽ không bị hỏng, nhưng sẽ tiếp tục hoạt động thông qua một thư viện hỗ trợ riêng.
Thảo luận thêm (đọc lâu) về lý do tại sao chúng là "thử nghiệm" và điều này có nghĩa là gì có thể được tìm thấy trong bài đăng trên diễn đàn này của Andrey Breslav.
Câu hỏi tương tự cũng áp dụng cho các thư viện hỗ trợ coroutines.
Phiên bản hiện tại của kotlinx.coroutines
được thiết kế để sử dụng trong sản xuất. Nó được bao phủ khá tốt với các bài kiểm tra, rất nhiều thứ đã được tối ưu hóa, tất cả các thay đổi được thực hiện xem xét các vấn đề về khả năng tương thích ngược với mã đã biên dịch trước đó. Nó chắc chắn đóng vai trò là giường kiểm tra cho nhiều thứ dựa trên quy trình khác nhau, vì vậy có một số phần được đánh dấu rõ ràng là "đang tiến hành" hoặc "không ổn định" trong tài liệu của các hàm và lớp tương ứng. Tuy nhiên, theo mặc định, tất cả các API công khai trong kotlinx.coroutines
được coi là ổn định và đang được phát triển, nếu cần, với các hỗ trợ di chuyển thích hợp.
The feature "coroutines" is experimental (see more here)
và liên kết đến kotlinlang.org/docs/diagnostics/experimental-coroutines.html