Tôi đã làm việc với akka được 7-8 tháng rồi. Khi tôi bắt đầu, tôi sẽ làm việc trên các ứng dụng và nhận thấy rằng các diễn viên sẽ được sử dụng cơ bản ở bất cứ đâu một lần trong hệ thống diễn viên để giao tiếp giữa hầu hết các đối tượng. Vì vậy, tôi đã làm như vậy - quay một diễn viên khác cho x / y / z.
Dường như với tôi rằng điều này có thể quá bừa bãi, làm tăng thêm sự phức tạp khi không cần thiết - nhưng tôi không thể tìm thấy bất kỳ cuộc thảo luận nào về việc nên sử dụng logic đồng bộ hoặc thậm chí không đồng bộ thông qua tương lai. Tôi bắt đầu suy nghĩ về lập trường của mình sau khi đồng nghiệp của tôi đề cập đến một cái gì đó tương tự. Tôi đã nhận ra một số trường hợp gần đây khi tôi đã suy nghĩ về một nhiệm vụ và sau đó tránh tạo ra một diễn viên khác bởi vì tôi có thể đạt được kết quả tương tự một cách an toàn trong một triển khai bất biến - ví dụ như một cái gì đó như nhận các giá trị cấu hình từ một db hoặc tệp ở đâu đó mà bạn truy cập rất thường xuyên và sẽ chờ kết quả là trường hợp sử dụng thực tế.
Đặc biệt, đối với tôi, dường như bất kỳ trường hợp nào bạn đang chơi với trạng thái bất biến, các diễn viên đều tạo ra sự phức tạp và giới hạn thông lượng - ví dụ, một hàm thuần túy trong một đối tượng có thể được gọi là không có rủi ro với bất kỳ mức độ đồng thời nào một diễn viên chỉ có thể xử lý một tin nhắn tại một thời điểm. Sự cân nhắc thay thế là bạn sẽ xử lý chuỗi nếu bạn cần chờ kết quả trừ khi bạn bắt đầu sử dụng tương lai nhưng trong trường hợp bạn không cần lo lắng về việc nhắn tin không đồng bộ hoặc mở rộng quy mô thì có vẻ như quá mức cần thiết để sử dụng một diễn viên.
Vì vậy, câu hỏi của tôi là - có một thời gian xấu để sử dụng các diễn viên? Tôi tò mò làm thế nào erlang trông và thực sự muốn cái nhìn sâu sắc của người khác. Hoặc nếu có một số nguyên tắc xung quanh diễn viên sử dụng.
ask
diễn viên và chỉ sử dụng một cách đơn giản Future
.