Tôi đã sử dụng cả Ember và Backbone cùng với Drupal - nhưng không phải theo cách bạn nghĩ.
Ember và Backbone đều là những công cụ tốt để tạo một ứng dụng web - nhưng Drupal không thực sự là một công cụ tốt để sử dụng cùng với chúng. Những gì bạn mong muốn khi bạn xây dựng một ứng dụng web là một cái gì đó nhẹ và nhanh. Bạn muốn nó nhanh để có thể mang lại cho người dùng cảm giác nếu thời gian phản hồi ngay lập tức. Bạn muốn nó nhẹ để làm cho nó có quy mô tốt hơn. Drupal không nhanh - bootstrap đầy đủ của Drupal mất nhiều thời gian (so với rất nhiều tùy chọn khác) nếu tất cả những gì bạn muốn làm là cung cấp API REST cho ứng dụng web của bạn. Drupal là PHP, điều này cũng khiến RAM khá đói, hạn chế số lượng người dùng đồng thời.
Vì vậy, nếu Drupal rất tệ cho việc này tại sao lại sử dụng nó?
Bạn thực sự nên sử dụng Drupal cho những gì Drupal vượt trội - một CMS. Những gì tôi đã làm trong quá khứ với các dự án cần một ứng dụng web là sử dụng Drupal để tạo CMS xung quanh ứng dụng web. Để xây dựng những thứ như blog, danh sách nội dung và lượt thích. Tôi cũng đã tạo các mô-đun để định nghĩa một số nội dung phụ trợ - như định nghĩa lược đồ và các công cụ khác có ý nghĩa khi sử dụng Drupal - vì nó giúp cho việc phát triển của tôi dễ dàng hơn nhiều.
Thay vì sử dụng Drupal để tạo API REST mà ứng dụng web cần - tôi đã sử dụng Node.js để tạo API REST thực tế và kiểm tra các lệnh gọi AJAX khác mà ứng dụng web cần thực hiện. Node.js vượt trội khi làm việc này. Nó rất nhanh (thời gian phản hồi thấp tới 30ms cho một danh sách các đối tượng). Nó cũng rất nhẹ, vì JavaScript trên máy chủ sử dụng các hành động không đồng bộ, máy chủ Node.js thường có thể xử lý hàng ngàn người dùng đồng thời trong đó PHP có thể xử lý có thể 100. Ngoài ra - vì Node.js là JavaScript, bạn có thể sử dụng lại rất nhiều của máy chủ mã và phía máy khách. Theo nghĩa đen, bạn có thể viết cùng một mã xác thực, thay vì phải triển khai cả phía máy khách trong JavaScript và phía máy chủ trong PHP. Nếu bạn sẽ đến Drupal con ở Münich trong một vài tuần - bạn nên xem xét việc trình bày node.js.
Vì vậy, nếu bạn là một nhà phát triển, tôi thực sự khuyên bạn nên thực hiện một thiết lập tương tự và chỉ sử dụng Drupal cho những gì nó thực sự tốt. Nếu bạn muốn tạo một ứng dụng web đơn giản và bạn không mong đợi nhiều người dùng, sử dụng Drupal làm phụ trợ có thể là một lựa chọn nếu nó giúp ích cho thời gian phát triển của bạn.
Cập nhật Drupal 8
Vì vậy, với việc phát hành Drupal 8, một số điều trên vẫn đúng nhưng không được gia hạn như trước. Drupal 8 giống như Drupal 7 không phải là một công cụ nhẹ, như Node.js, Rails, Django, v.v. Vì các ứng dụng JavaScript chủ yếu sử dụng các dịch vụ khác nhau, bạn vẫn nên xem xét liệu Drupal có phải là công cụ tốt nhất cho việc này không.
Với Drupal 8, rất nhiều thứ đã được cải thiện. Dịch vụ là bản địa hơn rất nhiều, với Symphony điều khiển yêu cầu / phản hồi. Drupal 8 có rất nhiều khả năng thú vị với bộ nhớ đệm nâng cao và tất cả các tính năng tuyệt vời. Nhưng ngay cả với tất cả sự tuyệt vời của Drupal 8, nó vẫn nặng hơn rất nhiều so với các ứng dụng trọng lượng nhẹ. Thật khó để nói Drupal 8 có thể được sử dụng như một nhà cung cấp dịch vụ web nhanh như thế nào.
Tuy nhiên, với tất cả những gì đã nói và thực hiện, khuyến nghị chung của tôi vẫn giữ nguyên. Là một nhà phát triển Drupal, thật dễ dàng để sử dụng Drupal cho mọi thứ, vì chúng ta đã quen với nó. Nó cảm thấy an toàn và Drupal có thể được sử dụng cho bất cứ điều gì. Hãy nhớ rằng trong khi có thể sử dụng Drupal cho bất cứ điều gì, điều đó không có nghĩa đó là công cụ tốt nhất cho mọi thứ. Thực hiện phân tích âm thanh và hiểu được điểm mạnh và điểm yếu của các công cụ bạn muốn sử dụng trong dự án CNTT, sẽ luôn giúp ích rất nhiều và có thể giúp bạn tránh kết thúc ở vị trí bế tắc với kết quả không như mong đợi của bạn .