NodeJS là một nền tảng viết bằng JavaScript giúp xây dựng các ứng dụng mạng nhanh và khả mở. NodeJS được InfoWorld bình chọn là "Công nghệ của năm" năm 2012. Bài viết này phân tích ưu / nhược điểm cũng như tính thuyết phục của NodeJS do đó sẽ hữu ích với những ai quan tâm tới việc sử dụng NodeJS để phục vụ cho việc phát triển dự án, hệ thống của cá nhân, công ty...
I. Nhược điểm NodeJS
1. Ứng dụng nặng tốn tài nguyên
Nếu bạn cần xử lý các ứng dụng tốn tài nguyên CPU như encoding video, convert file, decoding encryption... hoặc các ứng dụng tương tự như vậy thì không nên dùng NodeJS (Lý do: NodeJS được viết bằng C++ & Javascript, nên phải thông qua thêm 1 trình biên dịch của NodeJS sẽ lâu hơn 1 chút ). Trường hợp này bạn hãy viết 1 Addon C++ để tích hợp với NodeJS để tăng hiệu suất tối đa! (Việc tích hợp rất thân thiện và nhanh chóng)
2. NodeJS và ngôn ngữ khác
NodeJS, PHP, Ruby, Python .NET... thì việc cuối cùng là phát triển các App Web. NodeJS mới sơ khai như các ngôn ngữ lập trình khác. Vậy nên bạn đừng hi vọng NodeJS sẽ hơn PHP, Ruby, Python... ở thời điểm này. Nhưng với NodeJS bạn có thể có 1 ứng dụng như mong đợi, điều đó là chắc chắn (perfect)!
Với những gì các ngôn ngữ tiền bối đang có (cộng đồng lâu năm, framework, cms, opensource...) Nếu bạn/doanh nghiệp chưa biết về NodeJS thì việc cần xây dựng dự án quan trọng, kinh doanh phát triển trên NodeJS sẽ không phải lựa chọn bây giờ.
3. NoSQL + Nodejs + Noob!
Với NodeJS, NoSQL thì là sự kết hợp hoàn hảo nhưng: Bạn là người có kinh nghiệm với các ngôn ngữ lập trình để phát triển các dự án. Bạn biết được NodeJS qua tin tức, báo chí, bạn bè... Bạn quyết định xây dựng dự án bằng NodeJS. Nhưng khi gặp sự cố rủi ro xây dựng dự án với NodeJS đồng thời quay lưng luôn. Hãy đừng đổ lỗi cho công nghệ bạn đang dùng mà hãy hiểu rằng "BẠN CHƯA HIỂU ĐƯỢC NodeJS !"
II. Ưu điểm NodeJS
1. JSON APIs
Bởi lẽ REST/JSON APIs gọn nhẹ là điều khiến NodeJS tỏa sáng. Với cơ chế event-driven, non-blocking I/O (Input/Output) và mô hình kết hợp với Javascript là sự lựa chọn tuyệt vời cho các dịch vụ Webs làm bằng JSON.
2. Ứng dụng trên 1 trang
Nếu bạn định viết 1 ứng dụng thể hiện trên 1 trang (Gmail?) NodeJS rất phù hợp để làm. Với khả năng xử lý nhiều Request/s đồng thời thời gian phản hồi nhanh. Các ứng dụng bạn định viết không muốn nó tải lại trang, gồm rất nhiều request từ người dùng cần sự hoạt động nhanh để thể hiện sự chuyên nghiệp thì NodeJS sẽ là sự lựa chọn của bạn.
3. Shelling tools unix
NodeJS sẽ tận dụng tối đa Unix để hoạt động. Tức là NodeJS có thể xử lý hàng nghìn Process và trả ra 1 luồng khiến cho hiệu xuất hoạt động đạt mức tối đa nhất và tuyệt vời nhất.
4. Streamming Data (Luồng dữ liệu)
Các web thông thường gửi HTTP request và nhận phản hồi lại (Luồng dữ liệu). Giả xử sẽ cần xử lý 1 luồng giữ liệu cực lớn, NodeJS sẽ xây dựng các Proxy phân vùng các luồng dữ liệu để đảm bảo tối đa hoạt động cho các luồng dữ liệu khác
5. Ứng dụng Web thực
Giả sử bạn xây dựng 1 ứng dụng chat, feed... Facebook, Twitter là điển hình cho Web thực. NodeJS làm khá tốt điều đó!
III. NodeJS sự chinh phục không ngừng
1. Xây dựng thử một NodeJS
Đừng nói và viết ở đây quá nhiều đúng ko! Mọi vấn đề cũng vậy, hãy bắt tay làm thử một App NodeJS để chính nó chứng minh cho bạn/doanh nghiệp thấy.
2. Tìm kiếm lập trình viên
Trong con đường lập trình ứng dụng web thì Javascript không xa lạ với bất kỳ một lập trình viên nào. Để phát triển ứng dụng NodeJS thì hoàn toàn bằng Javascript vậy nên nguồn lập trình viên sẽ là... cực lớn !
3. Cộng đồng NodeJS
Với sự sinh sôi nẩy nở chóng mặt trên các phương tiện truyền thông, forum, trong đó có NodeJS.VN... Năm 2012 NodeJS được chọn là "Công nghệ của năm".
4. Performance (Hiệu suất)
Cái này rất quan trọng với tất cả các ngôn ngữ. NodeJS không ngoại lệ. Nền tảng Web với 5 nhà cung cấp trình duyệt chính: Mozilla, Google, Apple, Microsoft, Opera. Với sự chống lưng V8 JavaScript Engine của Google và Event-drivent non-blocking I/O có thể tải được hàng trăm nghìn kết nối cùng lúc. Nhưng cấu hình máy chủ cho NodeJS rất khiêm tốn (tiết kiệm được 4 lần so với đầu tư thông thường - hiệu suất tăng gấp đôi).
IV. Vậy mất bao lâu để chúng ta có thể thành thạo
Thông thường sẽ từ 3 - 6 tháng cho một Teamwork (3 - 5 người). Cá nhân từ 4 - 8 tháng.
Qua bài viết này hy vọng có thể giúp các bạn định hướng hơn về NodeJS và hãy giới thiệu NodeJS với bạn bè của bạn nhé!
Tung Nguyen - NodeJs.vn
(theo tinhte.vn)
Tin liên quan:
|