Bài 01: NodeJS là gì?

Dạo này lướt Facebook toàn thấy chủ đề về nên học gì vào năm 2016 và các câu trả lời chủ yếu là NodeJS, AngularJS, Phalcon FW, ... Nhưng với mình thì mình chỉ học NodeJS và AngularJS thôi :D. 

Và trong bài đầu tiên về chủ đề NodeJS này mình sẽ giới thiệu khái niệm NodeJS là gì và những thành phần cần thiết trong NodeJS.

1. NodeJS là gì?

NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine, nó được sử dụng để xây dựng các ứng dụng web như các trang video clip, các forum và đặc biệt là trang mạng xã hội phạm vi hẹp. NodeJS là một mã nguồn mở được sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới. NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ WIndow cho tới Linux, OS X nên đó cũng là một lợi thế. NodeJS cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất.

Khi nói đến NodeJS thì phải nghĩ tới vấn đề Realtime. Realtime ở đây chính là xử lý giao tiếp từ client tới máy chủ theo thời gian thực. Giống như khi bạn lướt Facebook thì mỗi khi bạn comment hay like một topic nào đó thì ngay lập tức chủ topic và những người đã comment trên đó sẽ nhận được thông báo là bạn đã comment. Nếu ban nghĩ Facebook đang sử dụng Ajax thì bạn đã sai rồi nhé, nếu họ sử dụng Ajax thì Server họ sẽ chết ngay lập tức bởi các request gửi lên với số lượng tính theo tấn :3. Còn nếu bạn hỏi Facebook có phải sử dụng NodeJS không thì mình xin trả lời là mình không biết nhé :D Vì mình không phải là nhà phát triển Facebook. 

Hoặc là ứng dụng Google Analytics, nếu bạn muốn làm một trang như vậy thì sẽ đụng tới Realtime, mà đụng tới Realtime thì NodeJS là một sự chọn lựa khá tốt. Đấy là mình thảo luận còn Google nó sử dụng công nghệ gì thì mình cũng chả biết :D.

Ok bây giờ ta sẽ tìm hiểu sơ lược qua một số tính năng của NodeJS, thực sự mà nói thì các tính năng này lúc mới học đọc vào cũng chả hiểu là cái gì cả nhưng một khi đã thấm rồi thì ắt sẽ tự hiểu ra, vì vậy phần dưới đây bạn có thể để dành đọc sau khi sử dụng được căn bản NodeJS.

2. Các đặc tính của NodeJS

Qua phần tìm hiểu NodeJS là gì mình có giới thiệu một đặc tính rất quan trọng đó là Realtime, tuy nhiên vẫn còn khá nhiều đặc tính mà bạn cần phải biết trước khi học NodeJS.

  • Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ (none-blocking), nó chủ yếu dựa trên nền của NodeJS Server và chờ đợi Server trả dữ liệu về. Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từ các cuộc gọi API trước (Realtime).
  • Chạy rất nhanh: NodeJ được xây dựng dựa vào nền tảng V8 Javascript Engine nên việc thực thi chương trình rất nhanh.
  • Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mô hình luồng duy nhất với sự kiện lặp. cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng một cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu. Node.js sử dụng một chương trình đơn luồng và các chương trình tương tự có thể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ truyền thống như Apache HTTP Server.
  • Không đệm: NodeJS không đệm bất kì một dữ liệu nào và các ứng dụng này chủ yếu là đầu ra dữ liệu.
  • Có giấy phép: NodeJS đã được cấp giấy phép bởi MIT License.

Sau đây là sơ đồ về các thành phần quan trọng trong NodeJS mà trong series này chúng ta sẽ tìm hiểu dần (hình sưu tầm từ tutorialspoint).

3. Nên học NodeJS ở đâu

Bạn đang đọc bài tìm hiểu NodeJS là gì thì đương nhiên câu trả lời sẽ là bạn nên theo dõi series này của mình bởi trong series này mình tham khảo và học từ một khóa học rất chất lượng trên Udemy.

Ngoài ra hiện nay cung có một số trung tâm và cá nhân đang xây dựng các khóa học về NodeJS, vì vậy bạn có thể tìm và đăng ký các khóa học đó của họ. Tuy nhiên lời khuyên là bạn nên tìm những trung tâm có uy tín nhé bởi vì chất lượng của họ sẽ cao hơn rất nhiều.

4. Lời kết

Qua bài tìm hiểu NodeJS là gì này bạn thấy rõ ràng việc học NodeJS vào năm 2016 này là một quyết định sáng suốt phải không các bạn :D Cá nhân mình cũng đang tìm hiểu thôi nên trong quá trình viết bài nêu có gì không đúng thì mong các bạn góp ý tích cực và bỏ qua nhé. Hy vọng hết năm 2016 này Freetuts sẽ có một chuyên đề học NodeJS hoàn chỉnh cho các bạn tham khảo.

-------------------#####-------------------

DOWNLOAD TÀI LIỆU NODEJS

Nguồn: freetuts.net

KHÓA HỌC ĐANG GIẢM GIÁ

FEDU - 34- THỰC HÀNH THIẾT KẾ DỮ LIỆU VỚI SQL QUA BÀI TẬP

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 30 – HTML CSS cơ bản

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 029- Học lập trình React js và Redux từ đầu, tạo ứng dụng fullstack với Node JS + React JS

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 27 – Lập trình back-end cơ bản với nodejs & mongodb, mongooose, postgresql.

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 25 – Thiết kế hiệu ứng bằng Javascript và illustrator

(Giảng viên: NGUYỄN ĐỨC VIỆT )

XEM