Cùng với sự phát triển như vũ bão của cộng đồng JavaScript, chúng ta có cảm giác như mỗi tuần lại có thêm các framework, library JavaScript mới được ra mắt. Thật khó có thể để liệt kê hết ra đây các framework, library, tool hiện có trong cộng đồng. Bài viết này chỉ giới thiệu với các bạn những framework, library, tool nổi tiếng nhất và có ảnh hưởng nhất trong cộng đồng JavaScript, cũng như khi nào nên áp dụng các framework, library hay tool đó.
AngularJS là framework phổ biến nhất, được nhiều developer sử dụng để xây dựng phần front-end cho những web application có phần front-end phức tạp. Nó là một opensource được hỗ trợ bởi Google.
AngularJS là một MVC framework. Nó cung cấp two-way data binding giữa model và view. Cách binding dữ liệu như thế này cho phép tự động update ở cả hai phía bất kể khi nào dữ liệu bị thay đổi. Vì thế hỗ trợ các bạn xây dựng các thành phần view có thể tái sử dụng ở nhiều chỗ. Ngoài ra nó cũng cung cấp cho các bạn một services framework để hỗ trợ tối đa giao tiếp giữa back-end và front-end.
Bất kể khi nào bạn cần xây dựng một web application có phần front-end phức tạp và cần sử dụng một framework có thể handle tất cả mọi thứ.
Đây có lẽ là thứ tốn giấy mực nhiều nhất trong thời gian gần đây. Tất cả mọi người ai ai cũng nói về ReactJS. ReactJS là một opensource được phát triển bới Facebook. Bản thân nó là một JavaScript library dùng để xây dựng user interface.
React cung cấp một phương thức dễ dàng để xây dựng giao diện thông qua việc phát triển các component và kết hợp chúng lại với nhau. Nó cũng cung cấp một phương thức trừa tượng hoá DOM để tối ưu việc rendering cũng như cho phép có thể render thông qua Node.js. Một điểm nữa đó là nó implement one-way reactive data flow, giúp cho chúng ta có một cái nhìn dễ dàng hơn.
Trong một số trường hợp, người ta thường kết hợp React để làm view layer trong một số MVC framework như Angular, Ember.
Khi bạn muốn một tầng giao diện mạnh mẽ nhưng không cần framework nào ở tầng front-end hay đơn giản bạn muốn xây dựng một view layer mạnh mẽ hơn thứ có sẵn của các framework đang sử dụng như Angular, Ember hay Backbone hoặc khi bạn muốn xây dựng một isomorphic web framework.
BackboneJS nổi tiếng là một framework đơn giản gói gọn trong một file JavaScript. Nó cực kì phổ biến đối với các web application nhỏ.
BackboneJS cung cấp một MVC framework đầy đủ với cả phần routing. Phần model trong BackboneJS cho phép key-value binding và sử dụng event để handle khi dữ liệu thay đổi. Phần view đảm nhận việc handle các event và router dùng để handle URL cũng như trạng thái trong application. Quá đầy đủ cho bạn để xây dựng một Single Page Application mà không cần phải apply quá nhiều thứ phức tạp.
Backbone sẽ là một framework cực kì tốt để đi với những web application đơn giản.
EmberJS là một framework chú trọng vào hiệu quả của developer khi xây dựng web application. Bản thân Ember mô tả nó là một framework không làm lãng phí thời gian của bạn.
Ember là một MVC framework. Nó bao gồm template và view engine, tự động update khi data thay đổi. Nó mang concept tương tự như Angular, cho phép bạn tạo ra những HTML tag của riêng mình. Ngoài ra nó cũng bao gồm routing để handle URL, model engine để làm việc với RESTful API.
Khi bạn cần một framework có thể hoạt động và không cần phải quá linh hoạt bởi vì bạn bị giới hạn về thời gian.
Meteor là một fullstack framework, hay cũng có thể nói là một platform khá nổi tiếng trong thời gian gần đây. Nó hỗ trợ bạn xây dựng một web application hoàn chỉnh từ back-end, front-end, đến cả mobile app sử dụng cross platform. Hỗ trợ bạn deploy một cách nhanh chóng bằng nền tảng PaaS của nó. Đặc biệt Meteor hỗ trợ cực kì tốt đối với các real time web application. Hỗ trợ tích hợp tốt với các framework khác như AngularJS hay ReactJS ở front-end.
Như giới thiệu, khi bạn cần một fullstack framework, hỗ trợ việc deploy. Đặc biệt khi bạn xây dựng những real time web application.
SailJS là một web framework phổ biến trong các NodeJS framework. Nó đưa ra một loạt các tính năng tuyệt vời để xây dựng web application với solid structure. Nó hỗ trợ convention over configuration (bạn đặt code trong folder /view thì nó là view, hỗ trợ websocket built-in, hỗ trợ generate RESTful API, hỗ trợ ORM với waiterline).
Khi bạn cần một web framework hỗ trợ bạn mọi thứ nhanh nhất ở phía server side sử dụng NodeJS.
Có lẽ nó chính là JavaScript library được sử dụng phổ biến nhất trên thế giới. Hỗ trợ DOM traversal, event handling, animation, ajax,...
Luôn luôn.
lodash là một JavaScript library cung cấp các tiện ích dành cho developer để đơn giản hoá code, cũng như code hiệu quả hơn.
Khi bạn cần một library đưa ra các tiện ích giúp việc coding hiệu quả hơn.
Mocha là một JavaScript test framework hỗ trợ việc test các phần async code một cách dễ dàng.
Chai là một behavior-driven/test-driven development assertion library, dùng kết hợp với Mocha để viết test script dễ đọc hơn.
Karma là tool được thiết kế để giúp tự động chạy test trên nhiều browser khác nhau.
Luôn luôn.
Khi xây dựng web application, trên môi trường production bạn thường phải minify JavaScript, CSS hay trước đó bạn phải biên dịch CoffeeScript/TypeScript, chạy unit test,... Đó là lý do vì sao bạn cần những task runner như Grunt hay Gulp.
Khi bạn muốn mọi thứ chỉ thông qua config và task runner thực hiện cho bạn.
ES6 hay ECMAScript 2015 ra đời cùng hàng hoạt các tính năng vô cùng tuyệt vời. Tuy nhiên chỉ những version mới nhất của browser mới hỗ trợ được và chúng ta không ở trong một thế giới tuyệt vời đến thế. Vẫn còn rất nhiều browser thế hệ cũ chỉ hỗ trợ được tới ES5. Vì thế chúng ta cần một công cụ để biên dịch ES6 về ES5 giúp web application của chúng ta có thể chạy được trên tất cả các browser.
Khi bạn muốn sử dụng các tính năng mới của Javascipt và vẫn muốn support các browser thế hệ cũ.
Trên đây là những framework, library, tool nổi bật và phổ biến nhất trong JavaScript cũng như trường hợp nên sử dụng. Hy vọng bài viết này đem lại cho bạn cái nhìn sơ bộ về các framework, library hay tool trong cộng đồng JavaScript và hiểu được khi nào nên áp dụng chúng.
Via codeaholicguy.com