2017-09-15 31 views

Trả lời

63

Có thể và nên sử dụng corlinine Kotlin trong quá trình sản xuất. Đó là lý do chính để 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ì tính tương thích ngược đối với bất kỳ thay đổi nào được giới thiệu với họ 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.

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à dành cho các tính năng thông thường của Kotlin không thể được thêm vào trong các bản cập nhật nhỏ, vì đảm bảo tính tương thích "đầy đủ". có thể được thêm vào, nhưng không có gì có thể được gỡ bỏ (vì khả năng tương thích ngược).

Corout thử nghiệm sử dụng tên gói kotlin.coroutines.experimental riêng biệt, để khi thiết kế coroutines được hoàn thành và chuyển sang gói kotlin.coroutines, mã được biên dịch cũ sẽ không bị hỏng, nhưng sẽ tiếp tục hoạt động qua thư viện hỗ trợ riêng.

Thảo luận thêm (đọc dài) về lý do tại sao chúng "thử nghiệm" và điều này có nghĩa là có thể được tìm thấy trong số này forum post bởi Andrey Breslav.

Câu hỏi tương tự cũng áp dụng cho 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 kiểm tra 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 đề tương thích ngược với mã được biên dịch trước đó. Nó chắc chắn phục vụ như là một giường thử nghiệm cho nhiều thứ dựa trên coroutine, do đó, có một số phần được đánh dấu rõ ràng là "công việc đ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 sự hỗ trợ di chuyển thích hợp.

+1

Điều đó vẫn khiến tôi lo lắng khi thấy cảnh báo được đánh dấu trên chức năng chúng tôi sử dụng, ví dụ: khởi động, nêu rõ 'Tính năng" coroutines "là thử nghiệm (xem thêm tại đây)' và liên kết với https://kotlinlang.org/docs/diagnostics/experimental-coroutines.html – Elye

+0

Đó là một chút của Catch-22, không phải là nó? Làm thế nào họ sẽ được thử nghiệm chiến đấu nếu không ai thử chúng :) Mặt khác, kinh nghiệm của tôi với các tính năng "thử nghiệm" của JetBrains cao hơn nhiều so với kinh nghiệm với các bản phát hành "chất lượng sản xuất" từ nhiều nhà cung cấp khác. Cụ thể, tôi đã hoàn toàn không có vấn đề với việc thực hiện các coroutines; các "trục trặc" duy nhất mà tôi thấy là về một số chi tiết trong quá trình xử lý của chúng bằng hệ thống kiểu tĩnh, không có hậu quả trong thời gian chạy. Họ đã vượt qua các bài kiểm tra căng thẳng khá nghiêm ngặt và điểm chuẩn trong Hazelcast Jet, với màu sắc bay. –

Các vấn đề liên quan