03/08/2018, 10:18

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 ...

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

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

Bài liên quan

Bài 01: Ajax là gì?

1. Ajax là gì? Ajax là một khái niệm không còn là mới lạ trong việc ứng dụng nó vào phát triển các ứng dụng phần mềm online, hay ứng dụng nó trong việc tạo ra các website động. Thực tế nó có thể mới lạ so với những bạn mới học lập trình web nên đôi lúc các bạn nghĩ nó là một ngôn ngữ lập trình ...

Vũ Văn Thanh viết 16:52 ngày 01/10/2018

Bài 01: Smarty là gì

1. Hiểu một cách đơn giản: Smarty là một template engine. Tiếp tục " Template engine là gì: Cũng hiểu một cách đơn giản nó là một "ngôn ngữ" trình bày dữ liệu, giúp phân tách code ra khỏi mã nguồn html". Smarty giúp cho người lập trình web tách được phần code PHP và mã HTML ...

Vũ Văn Thanh viết 16:49 ngày 01/10/2018

Bài 01: Regular Expression là gì?

1.Regular Expression là gì? Regular Expression viết tắt là RegEx là biểu thức chính quy được dùng để xử lý chuỗi thông qua biểu thức riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và bạn phải tuân theo nguyên tắc đó thì biểu thức của bạn mới hoạt động được. Nguyên tắc hoạt động ...

Tạ Quốc Bảo viết 16:27 ngày 01/10/2018

Bài 01: XML là gì? Cú pháp căn bản của XML

Ngoài cách lưu trữ dữ liệu trong các hệ quản trị CSDL ra thì bạn có thể lưu trữ dữ liệu trong file TXT, file JSON hay file XML đều được. Tuy nhiên ...

Hoàng Hải Đăng viết 10:20 ngày 03/08/2018

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 ...

Bùi Văn Nam viết 10:18 ngày 03/08/2018
0