Tôi sắp kết thúc giai đoạn tạo mẫu / bằng chứng về giai đoạn khái niệm cho một dự án phụ mà tôi đang thực hiện và cố gắng quyết định một số quyết định thiết kế ứng dụng quy mô lớn hơn. Ứng dụng này là một hệ thống quản lý dự án phù hợp hơn với quy trình phát triển nhanh. Một trong những quyết định tôi cần đưa ra là có nên sử dụng ứng dụng nhiều trang truyền thống hay ứng dụng một trang hay không.
Hiện tại nguyên mẫu của tôi là một thiết lập nhiều trang truyền thống, tuy nhiên tôi đã xem xét backbone.js để dọn dẹp và áp dụng một số cấu trúc cho mã Javascript (jQuery) của tôi. Có vẻ như trong khi backbone.js có thể được sử dụng trong các ứng dụng nhiều trang, nó sẽ tỏa sáng hơn với các ứng dụng trang đơn. Tôi đang cố gắng đưa ra một danh sách các ưu điểm và nhược điểm của việc sử dụng phương pháp thiết kế ứng dụng một trang. Cho đến nay tôi có:
Ưu điểm
Tất cả dữ liệu phải có sẵn thông qua một số loại API - đây là một lợi thế lớn cho trường hợp sử dụng của tôi vì dù sao tôi cũng muốn có API cho ứng dụng của mình. Hiện tại, khoảng 60-70% các cuộc gọi của tôi để nhận / cập nhật dữ liệu được thực hiện thông qua API REST. Làm một ứng dụng một trang sẽ cho phép tôi kiểm tra API REST tốt hơn vì chính ứng dụng sẽ sử dụng nó. Điều đó cũng có nghĩa là khi ứng dụng phát triển, API sẽ phát triển vì đó là những gì ứng dụng sử dụng; không cần duy trì API như một tiện ích bổ sung cho ứng dụng.
Ứng dụng nhạy hơn - vì tất cả dữ liệu được tải sau trang ban đầu được giữ ở mức tối thiểu và được truyền ở định dạng nhỏ gọn (như JSON), nên các yêu cầu dữ liệu thường sẽ nhanh hơn và máy chủ sẽ xử lý ít hơn một chút.
Nhược điểm
- Sao chép mã - ví dụ mã mô hình. Tôi sẽ phải tạo các mô hình cả về phía máy chủ (PHP trong trường hợp này) và phía máy khách trong Javascript.
- Logic nghiệp vụ trong Javascript - Tôi không thể đưa ra bất kỳ ví dụ cụ thể nào về lý do tại sao điều này sẽ tệ nhưng tôi cảm thấy không hợp lý khi có logic kinh doanh trong Javascript mà bất kỳ ai cũng có thể đọc được.
- Rò rỉ bộ nhớ Javascript - vì trang không bao giờ tải lại, rò rỉ bộ nhớ Javascript có thể xảy ra và tôi thậm chí sẽ không biết bắt đầu gỡ lỗi chúng ở đâu.
Ngoài ra còn có những thứ khác là loại kiếm hai lưỡi. Ví dụ, với các ứng dụng trang đơn, dữ liệu được xử lý cho mỗi yêu cầu có thể ít hơn rất nhiều vì ứng dụng sẽ yêu cầu dữ liệu tối thiểu cần cho yêu cầu cụ thể, tuy nhiên điều đó cũng có nghĩa là có thể có nhiều yêu cầu nhỏ hơn đối với máy chủ. Tôi không chắc đó là điều tốt hay xấu.
Một số ưu điểm và nhược điểm của các ứng dụng web đơn mà tôi nên ghi nhớ khi quyết định nên đi theo hướng nào cho dự án của mình?