Chi phí của việc tạo ra một cá thể bộ điều khiển mới là không đáng kể và điều đó có nghĩa là không có trạng thái chia sẻ vô tình giữa hai yêu cầu hoàn toàn không liên quan. Bất kỳ "tiết kiệm" trong thời gian xử lý sẽ được nhiều hơn bù đắp bởi khả năng sản xuất lỗi tàn phá.
Hãy nhớ rằng bộ điều khiển dành cho trạng thái lưu trữ yêu cầu cụ thể. Việc sử dụng lại bộ điều khiển sẽ yêu cầu bạn phải đặt lại mọi số @variable
mà bạn từng đặt vào lúc bắt đầu mọi hành động. Nếu không, một cái gì đó như @is_admin = true
có thể được thiết lập và không bao giờ bị xóa. Các lỗi ít gây khó chịu mà bạn thực sự muốn giới thiệu sẽ tinh vi hơn và tiết kiệm thời gian của nhà phát triển.
Bạn đang thấy tối ưu hóa ở nơi không có. Điều gì đó phải duy trì trạng thái và đặt lại trạng thái giữa các yêu cầu hoặc bạn có cơn ác mộng này về trạng thái vô tình được chia sẻ. Nếu bạn duy trì trạng thái điều khiển giữa các yêu cầu, bạn chỉ cần đẩy công việc duy trì/đặt lại trạng thái xuống một số cấp thấp hơn, tại đó câu trả lời có thể là vẫn là để khởi tạo phiên bản mới của một số lớp quản lý nhà nước cho từng yêu cầu. Máy vi tính là rất tốt khi phân bổ và giải phóng tài nguyên, do đó, không bao giờ lo lắng về điều đó cho đến khi bạn thực sự biết đó là nút cổ chai. Trong trường hợp này, việc tạo một bộ điều khiển mới cho mỗi yêu cầu có thể dễ dàng là lựa chọn đúng.
Trong trường hợp Rails, có thể sử dụng @variable = value
là chiến thắng chính từ điểm rõ ràng và khả năng sử dụng, và điều này ít nhiều đòi hỏi phải loại bỏ từng trường hợp bộ điều khiển khi yêu cầu hoàn tất.
Câu hỏi hay, bạn nên hỏi DHH về điều đó :) Nhưng tôi nghĩ điểm chính là cô lập hoàn toàn môi trường này với môi trường khác. Bởi vì nếu không hệ thống phải tiêu tốn nhiều năng lượng xử lý hơn cho logic phân phối. imho –
Vì dễ dàng hơn để giải thích về mã khi không có nguy cơ dẫm lên dữ liệu của yêu cầu khác. –
Không có gì ngạc nhiên, nhưng có vẻ như Grails cũng làm như vậy. –