Tôi đang thử làm một website trưng bày hàng dựa trên framework Saleor, nhằm thay thế web cũ tôi đã làm cách đây 9 năm (http://kimphat.vn). Nhân việc làm mới, tôi cũng quyết áp dụng một vài kĩ thuật mới, như là biến phần giao diện web thành một ứng dụng JavaScript hẳn hoi, bằng cách sử dụng một framework MVC (Model-View-Controler) bằng JavaScript.
Việc sử dụng framework MVC JavaScript thực ra không phải là mới lắm. Tôi có một người bạn, trẻ hơn tôi nhiều tuổi và hắn đã thành thạo AngularJS lắm rồi. Tuy nhiên, do tôi không làm web một cách liên tục (từ lúc ra trường, tôi làm về phần mềm nhúng nhiều hơn), cộng thêm tuổi tác có thể gọi là già nếu so với các lập trình viên xung quanh (không so với quản lý dự án, hehe) nên tôi cảm thấy hụt hơi với các công nghệ web mới. Cho nên bước đầu dấn thân vào kĩ thuật này cũng cam go và nhiều cảm xúc.
Lần đầu tiên tôi chạm tay vào một framework MVC JavaScript là cách đây vài tháng, với Backbone, khi đang làm website cho công ty (easyuni.com). Lúc đấy, phần giao diện chủ yếu được đảm nhiệm bởi một đồng nghiệp, mà vì lí do nào đó, anh ta chọn và đưa Backbone vào sử dụng. Sau đó, tôi phải làm một tính năng là tạo widget, tóm tắt nội dung từ forum được điều hành bởi công ty (forum.easyuni.my), nhúng vào website chính của công ty. Do cái widget này chủ yếu đụng đến code ở mặt front-end, tức là code bằng JavaScript, HTML là chính, nên tôi nghĩ đến dùng Backbone luôn, nhân tiện nó đang được dùng trên website rồi.
Bây giờ, khi làm website trưng bày hàng hóa (không hẳn là thương mại điện tử), tôi vẫn chọn Backbone. Không hẳn là vì tôi chọn theo quán tính. Tôi cũng đã đưa vào tầm ngắm 3 cái: Backbone, AngularJS, Emberjs. Emberjs được đưa vào danh sách vì tôi thấy màn thể hiện ấn tượng của nó trong Discourse, phần mềm mà cty tôi dùng để chạy forum. Nhưng sau khi thấy AngularJS, Emberjs có nhiều khái niệm mới quá, sợ tốn nhiều thời gian học, không kịp làm nên tôi quay lại Backbone. Vả lại, dung lượng của 2 framework kia cũng khá nặng. AngularJS hay tự nhận nó nhẹ nhất, nhưng đấy là do nó làm cho Backbone trông có vẻ nặng bằng cách gộp dung lượng của jQuery vào. Đúng là Backbone cần phải có jQuery mới chạy được, nên việc gộp dung lượng jQuery vào Backbone là hợp lý. Nhưng vấn đề là dù tôi có dùng AngularJS đi nữa thì website của tôi cũng phải dùng jQuery, để code JavaScript cho các tính năng khác. Cho nên nếu cộng jQuery vào cả AngularJS và Backbone thì bộ đôi Backbone + jQuery vẫn nhẹ hơn.