Sau khi đọc cuốn sách của Joe Armstrong và xem các chương trình phát sóng của Kevin Smith, tôi đã xây dựng một ứng dụng OTP đơn giản bao gồm một gen_server đơn và giám sát viên duy nhất, đi kèm với nhau như một ứng dụng OTP.Khi sử dụng gen_server trong các ứng dụng Erlang/OTP
Bây giờ tôi đang xem mochiweb và đã tạo một dự án mẫu [helloworld] bằng cách sử dụng tập lệnh new_mochiweb.erl. Duyệt mã nguồn Tôi thấy nó không giống với ứng dụng OTP mẫu của tôi [ứng dụng OTP ở đó, người giám sát ở đó] với một khác biệt chính .. helloworld.erl được tạo ra và các tệp helloworld_web.erl không thực hiện hành vi gen_server, chúng chỉ là mô-đun Erlang chuẩn.
Tôi đã theo ấn tượng rằng việc sử dụng gen_server là cách được khuyến nghị để sử dụng khi xây dựng các thành phần ứng dụng OTP. Tại sao mochiweb có thể sử dụng ứng dụng OTP và các hành vi của người giám sát nhưng tránh được gen_server?
Ứng dụng stdlib là ứng dụng OTP. Khi bắt đầu, nó không có bất kỳ bộ phận nào đang chạy. Đó là một ứng dụng thư viện đơn giản, có cho các mô-đun nó tải, vì vậy các ứng dụng OTP khác có thể phụ thuộc vào nó để có được tất cả các mô-đun của nó. Vì vậy, vẫn còn có lý do để sử dụng OTP khi một người chỉ giới thiệu các mô-đun. – Christian
Quyền của bạn, tôi đã được một chút slapdash trong ngôn ngữ của tôi ... Bạn nên gói tất cả các mã của bạn lên theo cách OTP bình thường bằng cách sử dụng các thư mục và các công cụ - nhưng đôi khi điều phải làm là chỉ sinh ra một cái gì đó thay vì sử dụng một gen_server để bắt đầu nó. –