2017-06-01 22 views
13

Tôi đang bắt đầu một ứng dụng web Spring Boot mới và tôi cần đưa ra lựa chọn về cách triển khai front-end.Lựa chọn giữa Thymeleaf và Angular cho một dự án Spring MVC mới

Tôi thực sự thoải mái với khung khuôn mẫu Thylemeaf mà tôi đã sử dụng trong các dự án cuối cùng của mình, nhưng tôi đang đánh giá Angular (v2) là một giải pháp thay thế có thể.

Tôi khá mới đối với khung công tác MVC phía máy khách và tôi muốn hiểu liệu có một số nguyên tắc để quyết định tùy chọn nào là tốt nhất cho dự án web hay không.

Tôi đã đọc rất nhiều bài viết và hướng dẫn về việc này, nhưng tất cả dường như để mô tả ý kiến ​​của cá nhân hoặc được chỉ mã hóa thí nghiệm ...

Có một số yêu cầu ứng dụng đó một cách khách quan đề nghị sử dụng một approah phía máy khách thay vì thực hiện phía máy chủ?

Có thể và hiệu quả để sử dụng cả hai công nghệ cùng nhau?

+0

Sử dụng cả hai cùng nhau là có thể, tôi đã thực hiện nó trong một số dự án :) Để xem đó là thực hành tốt hay không, tôi thực sự không thể nói cho bạn biết. – N4zroth

+0

Với [JHipster] (https://jhipster.github.io/), bạn có thể sử dụng cả hai cùng một lúc. Tôi nghĩ rằng đó là giải pháp tốt nhất nếu bạn muốn sử dụng mùa xuân với góc cạnh. –

+0

Cảm ơn các bạn. Tôi vẫn đang cố gắng hiểu nếu nó có ý nghĩa để sử dụng cả hai khuôn khổ hoặc chỉ đơn giản là chọn một trong số chúng. Nhưng tôi cũng muốn hiểu sâu sắc những lợi thế thực sự của cả hai người trong số họ là lựa chọn đúng đắn. – davioooh

Trả lời

3

Sự lựa chọn là không nên sử dụng một thư viện JavaScript hoặc Thymeleaf, đó sẽ là một ràng buộc nhân tạo mà bạn tạo ra, cả hai đều là động vật khác nhau. Thymeleaf là để tạo khuôn mẫu, JQuery là một thư viện phía máy khách để tạo các trang động. Nó sẽ có ý nghĩa hơn để lựa chọn giữa các thư viện templating hoặc lựa chọn giữa các thư viện JavaScript, nhưng cả hai có thể đi độc đáo với nhau.

Nói chung, khuôn mẫu của bạn không ảnh hưởng đến mã JavaScript của bạn, một số người làm mẫu mã Javascript của họ, nhưng IMHO đây là một ý tưởng khủng khiếp. Thay vào đó, hãy sử dụng Templating để thay thế các thuộc tính thẻ trong HTML và Javascript để làm cho trang web của bạn năng động với bất kỳ thư viện nào bạn chọn.

Tôi không chắc chắn những gì bạn có ý nghĩa bởi

client-side approah thay vì một thực server-side

Nhưng những gì tôi thấy hiện nay có 2 phương pháp khác nhau, tạo Microservies VS Monolith ứng dụng web. Nếu bạn phát triển trang web của bạn hoàn toàn trong Thymeleaf bạn sẽ không làm cho nó rất tái sử dụng được. Netflix, Amazon, Uber, vv tất cả tạo ra các dịch vụ (đôi khi được gọi là các dịch vụ vi mô) được tái sử dụng trong toàn bộ tổ chức thông qua một API REST.

Nếu bạn chỉ có một trang web được triển khai trong Thymeleaf, ứng dụng khác sẽ không thể truy cập vào bất kỳ dịch vụ nào được tạo ra bởi ứng dụng của bạn, trong khi bạn tạo REST API cho ứng dụng của mình thì bạn có thể tiếp tục sử dụng lại máy chủ back-end khi bạn cần tạo ứng dụng dành cho thiết bị di động hoặc một ứng dụng web khác có yêu cầu tương tự. Tất nhiên nếu dịch vụ của bạn sẽ không được tái sử dụng, điều này có thể không quan trọng đối với bạn và bạn có thể rất thành thạo khi làm mọi thứ theo một cách nhất định mặc dù không được sử dụng nhiều nhất, tất nhiên chúng tôi không phải lúc nào cũng tạo ra Amazon tiếp theo. Nhưng tôi vẫn tin rằng đó là ý tưởng hay để làm theo những thực hành tốt nhất, ngay cả khi nó chỉ để làm tốt hơn trong việc làm mọi thứ theo một cách nào đó.

+0

Xin vui lòng để lại bình luận cho xuống bỏ phiếu cảm ơn. – Snickers3192

15

Thymeleaf và AngularJS không loại trừ lẫn nhau. Bạn chắc chắn có thể sử dụng chúng với nhau, tùy thuộc vào những gì bạn đang cố gắng để thực hiện. Nếu bạn đang viết một ứng dụng web động đơn, Thymeleaf có lẽ là không cần thiết.

Nói cho câu hỏi của bạn về khung bên ứng dụng khách so vớiphía máy chủ, tôi là một kỹ sư phần mềm doanh nghiệp, vì vậy tôi không tạo phần mềm thương mại và ưu tiên của tôi ít hơn về vẻ đẹp của nó (một chút Bootstrap thực hiện mẹo) và nhiều hơn nữa về tính ổn định, khả năng tương thích của trình duyệt (ngay cả với các trình duyệt cũ hơn)) và khả năng bảo trì. Cá nhân tôi tránh trang đơn, ứng dụng web động vì tôi thấy cơ sở mã khó quản lý hơn trong các ứng dụng không tầm thường; một cơ sở mã Javascript lớn có thể là một con gấu, theo ý kiến ​​của tôi. Xây dựng trang của tôi chủ yếu ở phía máy chủ cung cấp cho tôi khả năng gỡ lỗi tốt hơn (Java sẽ cung cấp cho bạn rất nhiều thời gian biên dịch trợ giúp mà bạn không nhận được bằng Javascript) và ghi nhật ký dễ dàng hơn. Tôi sử dụng javascript (chủ yếu là chỉ jquery) ở phía khách hàng, nhưng nói chung các ứng dụng web của tôi được xây dựng để làm suy giảm một cách duyên dáng nếu người dùng đã tắt javascript. Một lần nữa, đây là những ứng dụng nội bộ, tiện dụng, hỗ trợ doanh nghiệp. Tôi không có thời gian để viết một luận văn toàn bộ về chủ đề và có rất nhiều sắc thái mà tôi không bao gồm, nhưng hy vọng điều này là hữu ích.

Nếu bạn cần ứng dụng web của mình hoạt động giống như ứng dụng dành cho thiết bị di động hoặc máy tính để bàn, thì ứng dụng web động đơn lẻ sử dụng một khung như AngularJS là một cách để thực hiện.

+0

Cảm ơn bạn Erik vì quan điểm thú vị của bạn. – davioooh

Các vấn đề liên quan