Tôi chưa quen với StackExchange, nhưng tôi đoán bạn sẽ có thể giúp tôi.
Chúng tôi đang giới thiệu một ứng dụng Java Enterprise mới, thay thế một giải pháp JSP kế thừa. Do nhiều thay đổi, giao diện người dùng và các bộ phận của logic nghiệp vụ sẽ hoàn toàn được xem xét lại và thực hiện lại.
Suy nghĩ đầu tiên của chúng tôi là JSF, vì nó là tiêu chuẩn trong Java EE. Lúc đầu tôi có ấn tượng tốt. Nhưng bây giờ tôi đang cố gắng thực hiện một nguyên mẫu chức năng, và có một số lo ngại thực sự nghiêm trọng về việc sử dụng nó.
Trước hết, nó tạo ra hỗn hợp giả HTML / CSS / JS không hợp lệ tồi tệ nhất, lộn xộn nhất mà tôi từng thấy. Nó vi phạm mọi quy tắc duy nhất tôi học được trong phát triển web. Hơn nữa, nó kết hợp với nhau, những thứ không bao giờ nên được kết hợp chặt chẽ như vậy: Bố cục, Thiết kế, Logic và Giao tiếp với máy chủ. Tôi không thấy làm thế nào tôi có thể mở rộng đầu ra này một cách thoải mái, cho dù tạo kiểu bằng CSS, thêm kẹo UI (như các phím nóng có thể định cấu hình, các tiện ích kéo và thả) hoặc bất cứ thứ gì.
Thứ hai, nó quá phức tạp. Sự phức tạp của nó là nổi bật. Nếu bạn hỏi tôi, đó là sự trừu tượng hóa kém của các công nghệ web cơ bản, cuối cùng bị tê liệt và vô dụng. Tôi có những lợi ích gì? Không, nếu bạn nghĩ về. Hàng trăm thành phần? Tôi thấy mười nghìn đoạn mã HTML / CSS, mười nghìn đoạn mã JavaScript và hàng ngàn trình cắm jQuery bổ sung. Nó giải quyết được rất nhiều vấn đề - chúng tôi sẽ không có nếu chúng tôi không sử dụng JSF. Hoặc mẫu điều khiển phía trước cả.
Và cuối cùng, tôi nghĩ chúng ta sẽ phải bắt đầu lại từ 2 năm. Tôi không thấy cách tôi có thể triển khai tất cả các mô hình GUI đầu tiên của chúng tôi (Bên cạnh đó, chúng tôi không có Chuyên gia về JSF trong nhóm của chúng tôi). Có lẽ chúng ta có thể hack nó bằng cách nào đó. Và sau đó sẽ có nhiều hơn nữa. Tôi chắc chắn chúng tôi có thể hack hack của chúng tôi. Nhưng đến một lúc nào đó, chúng ta sẽ bị mắc kẹt. Do mọi thứ ở trên tầng dịch vụ đều nằm trong sự kiểm soát của JSF. Và chúng ta sẽ phải bắt đầu lại.
Đề xuất của tôi sẽ là triển khai api REST, sử dụng JAX-RS. Sau đó tạo ứng dụng khách HTML5 / Javascript với MVC phía máy khách. (hoặc một số hương vị của MVC ..) Nhân tiện; dù sao chúng ta cũng sẽ cần api REST, vì chúng ta cũng đang phát triển một phần Android front-end.
Tôi nghi ngờ rằng, JSF là giải pháp tốt nhất hiện nay. Khi Internet đang phát triển, tôi thực sự không hiểu tại sao chúng ta nên sử dụng 'cái cào' này.
Bây giờ, ưu / nhược điểm là gì? Làm cách nào tôi có thể nhấn mạnh quan điểm của mình để không sử dụng JSF? Điểm mạnh để sử dụng JSF so với đề xuất của tôi là gì?