Tôi đã bắt đầu mày mò với máy chủ HTTP Node.js và thực sự muốn viết Javascript phía máy chủ nhưng điều gì đó đang ngăn tôi bắt đầu sử dụng Node.js cho ứng dụng web của mình.
Tôi hiểu toàn bộ khái niệm I / O không đồng bộ nhưng tôi hơi lo ngại về các trường hợp cạnh trong đó mã thủ tục rất nặng về CPU như thao tác hình ảnh hoặc sắp xếp các tập dữ liệu lớn.
Theo tôi hiểu, máy chủ sẽ rất nhanh cho các yêu cầu trang web đơn giản như xem danh sách người dùng hoặc xem bài đăng trên blog. Tuy nhiên, nếu tôi muốn viết mã chuyên sâu CPU (ví dụ như ở phần cuối quản trị viên) tạo đồ họa hoặc thay đổi kích thước hàng ngàn hình ảnh, yêu cầu sẽ rất chậm (vài giây). Vì mã này không đồng bộ, mọi yêu cầu đến máy chủ trong vài giây đó sẽ bị chặn cho đến khi yêu cầu chậm của tôi được thực hiện.
Một đề xuất là sử dụng Web Worker cho các tác vụ chuyên sâu của CPU. Tuy nhiên, tôi e rằng nhân viên web sẽ khó viết mã sạch vì nó hoạt động bằng cách bao gồm một tệp JS riêng. Điều gì xảy ra nếu mã chuyên sâu của CPU nằm trong phương thức của đối tượng? Thật là tệ khi viết một tệp JS cho mọi phương thức sử dụng nhiều CPU.
Một đề xuất khác là sinh ra một tiến trình con, nhưng điều đó làm cho mã thậm chí ít được bảo trì hơn.
Bất kỳ đề xuất để vượt qua trở ngại (nhận thức) này? Làm thế nào để bạn viết mã hướng đối tượng sạch với Node.js trong khi đảm bảo các tác vụ nặng của CPU được thực thi không đồng bộ?