Tôi đã sử dụng kỹ thuật này dành riêng cho một ứng dụng web mà chúng tôi đang làm việc. Phần cuối của tôi được lưu trữ trên Google App Engine bằng Java SDK và frontend của tôi sử dụng HTML, CSS và JavaScript (với jQuery).
Dự án này là một dự án nhỏ hơn chỉ có bản thân tôi và một nhà thiết kế Web, và cả hai chúng tôi đều cảm thấy rằng phương pháp này đã giúp chúng tôi làm việc nhanh hơn rất nhiều và có được thứ gì đó để tiếp thị sớm hơn nhiều.
Ưu điểm: Làm việc với các nhà thiết kế web
Ưu điểm chính của kỹ thuật này là nhà thiết kế Web, người biết một số PHP nhưng không coi mình là lập trình viên, có thể làm việc không bị cản trở trong HTML và CSS mà không phải lội qua vô số dòng JSP, thẻ taglib và phía máy chủ khác đánh dấu mà chúng ta đã nói trong nhiều năm được cho là làm cho cuộc sống của nhà phát triển phía trước dễ dàng hơn nhiều.
Không có tất cả các đánh dấu phía máy chủ, chúng tôi đã nhanh nhẹn hơn. Nhà thiết kế web đã trực tiếp hoán đổi và sửa đổi thiết kế ban đầu của mình 3 hoặc 4 lần, với rất ít thay đổi về phía tôi.
Nhận xét của anh ấy với tôi là anh ấy cảm thấy như HTML còn sống ở chỗ anh ấy có thể chỉnh sửa nó và sau đó ngay lập tức thấy những thay đổi trên máy của anh ấy với dữ liệu động. Cả hai chúng ta đều được hưởng lợi bởi điều này trong đó việc tích hợp chủ yếu là tự động.
Mã phía máy chủ và Handoff HTML / CSS
Trong các dự án trước đây, anh ta phải chuyển giao HTML và CSS cho các nhà phát triển Java, những người sau đó sẽ lấy HTML và CSS của anh ta và viết lại hoàn toàn bằng công nghệ JSP. Điều này sẽ mất rất nhiều thời gian và thường sẽ dẫn đến sự khác biệt tinh tế nhưng quan trọng trong việc hiển thị thực tế của các trang cũng như xác thực nó trong trình xác nhận W3C.
Nhìn chung, cả hai chúng tôi đều khá hài lòng với kỹ thuật này và tôi vẫn không có các trang JSP hoặc mã phía máy chủ trong các trang HTML của mình.
Cạm bẫy của Kỹ thuật REST / JSON
Có lẽ những cạm bẫy lớn nhất là những điều chúng ta chưa gặp phải. Tôi hoàn toàn mong đợi có một số bất đồng với các nhà phát triển Java có kinh nghiệm hơn, những người đã bị tẩy não bởi những gì mà nền tảng Apache và nhóm Spring đã nói với họ về cách các thư viện thẻ giúp các nhà phát triển frontend làm việc với mã dễ dàng hơn. Tôi hoàn toàn mong đợi sẽ có một đường cong học tập khi dự án này mở rộng và chúng tôi tiếp nhận nhiều nhà phát triển hơn, những người có thể phải học những kỹ thuật lỗi thời này, theo kinh nghiệm của tôi, đã làm cho công việc của các nhà thiết kế Web trở nên khó khăn hơn .
Một cạm bẫy khác là mã JavaScript đã trở nên rất lớn. Đây có thể là một vấn đề có lẽ vì lần đầu tiên tôi sử dụng kỹ thuật này và vì chúng tôi đã đưa ra một số nợ kỹ thuật nhỏ để làm việc theo hướng phát hành nhanh chóng. Có lẽ việc chọn một khung tốt hơn sẽ giúp giảm bớt rất nhiều phần lớn mã. Theo tôi, không ai trong số này là showstopper và tôi được khuyến khích tiếp tục sử dụng kỹ thuật này và hoàn thiện các kỹ năng của mình trong lĩnh vực này.
Ưu điểm: Các ứng dụng khác có thể được xây dựng trên nền tảng
Cuối cùng, tôi nên đề cập đến một lợi thế tiềm ẩn. Vì có một mức độ tách biệt tốt giữa các dịch vụ Web RESTful phụ trợ của tôi và giao diện của tôi, tôi cũng đã tạo ra một nền tảng mà tôi có thể dễ dàng mở rộng.
Một trong những người hoạt động của chúng tôi muốn thử một bằng chứng về khái niệm trong một ứng dụng khác và nhờ vào các dịch vụ RESTful của tôi, chúng tôi đã có thể tạo một giao diện hoàn toàn khác với ứng dụng để giải quyết một vấn đề hoàn toàn khác. Bằng chứng khái niệm được phát triển nhanh chóng đã sử dụng HTML, CSS và JavaScript của riêng nó, nhưng nó đã sử dụng các dịch vụ RESTful làm phụ trợ và nguồn dữ liệu.
Cuối cùng, một người quản lý dự án khác đã nhìn thấy những gì tôi đã làm, và ngay lập tức thấy rõ rằng tính năng này cần nhiều hơn là một bằng chứng về khái niệm, vì vậy nhóm của anh ấy đã thực hiện nó.
Tôi không thể nhấn mạnh đủ mức độ tái sử dụng của kiến trúc này, cả ở cấp độ ứng dụng cũng như cấp độ HTML / CSS / JavaScript và tôi chắc chắn sẽ khuyến khích bạn thử điều này trong dự án tiếp theo của bạn.