Tổng quan về NodeJS


Nodejs là một công nghệ vô cùng phổ biến khi nhắc đến thì hầu hết các web developer đều biết. Vậy nodejs là gì và nó làm được gì?
Bây giờ cùng mình tìm hiểu và xây dựng những trang web bằng nodejs.

Khái niệm

  • Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng.
  • Phần Core bên dưới của Nodejs được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao.
  • Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực.
  • Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể

Nodejs có thể làm được gì?

Frontend cases

  • Làm việc trực tiếp với hệ điều hành: Đọc/ghi file, lắng nghe kết nối tới các port
  • Nhận dữ liệu, ghi dữ liệu ra command line
  • Phân tách code thành các module rõ ràng, không “dồn đống” như JavaScript ở client side.

Nodejs mạnh thật đấy, và chúng ta hầu như sử dụng nó ở back-end. Vậy tại sao lại dùng Nodejs ở front-end để làm gì?

Ở front-end có nhiều vấn đề mà 1 dev có thể gặp phải như:

  • Package Management
  • Module/Dependency Management
  • Testing
  • Code Transformation
  • Task Runner

Và dân front-end thì rành Javascript nhất rồi. Thế là NodeJS được dân front-end sử dụng để viết tool cho giới front-end dùng luôn!

Có thể nói, JavaScript framework và NodeJS tooling chính là 2 nhân tố chính gây nên cuộc cách mạng trong cộng đồng front-end (và làm JavaScript đã rối nay càng rối).

Backend cases

  • NodeJS có thể tạo, mở, đọc, ghi, xóa và đóng các tập tin ngay khi đang truy cập trên máy chủ.
  • Tạo ra nội dung cho các trang web động.
  • NodeJS thực hiện thu thập các dữ liệu theo yêu cầu.
  • NodeJS thực hiện truy vấn, sửa, xóa, thêm các dữ liệu trong các hệ cơ sở như: Microsoft SQL Server, MySql, MongoDB, PostgreSQL.

Những ứng dụng nên dử dụng NodeJs

Rõ ràng, không phải cứ hot và mới là Nodejs làm gì cũng tốt, ví dụ như một ứng dụng cần tính ổn định cao, logic phức tạp thì các ngôn ngữ PHP hay Ruby… vẫn là sự lựa chọn tốt hơn. Còn dưới đây là những ứng dụng có thể và nên viết bằng Nodejs:

  • Websocket server: Các máy chủ web socket như là Online Chat, Game Server…
  • Fast File Upload Client: là các chương trình upload file tốc độ cao.
  • Ad Server: Các máy chủ quảng cáo.
  • Cloud Services: Các dịch vụ đám mây.
  • RESTful API: đây là những ứng dụng mà được sử dụng cho các ứng dụng khác thông qua API.
  • Any Real-time Data Application: bất kỳ một ứng dụng nào có yêu cầu về tốc độ thời gian thực. Micro Services: Ý tưởng của micro services là chia nhỏ một ứng dụng lớn thành các dịch vụ nhỏ và kết nối chúng lại với nhau. Nodejs có thể làm tốt điều này.

Thế mạnh của Nodejs mà ta tin dùng

  • Các ứng dụng Nodejs được viết bằng javascript, ngôn ngữ này là một ngôn ngữ khá thông dụng. Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “*Javascript có những đặc tính mà làm cho nó rất khác biệt so với các ngôn ngữ lập trình động còn lại, cụ thể là nó không có khái niệm về đa luồng, tất cả là đơn luồng và hướng sự kiện.*”

  • Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện Event-driven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả.

  • Có thể chạy ứng dụng Nodejs ở bất kỳ đâu trên máy Mac – Window – Linux, hơn nữa cộng đồng Nodejs rất lớn và hoàn toàn miễn phí. Các bạn có thể thấy cộng đồng Nodejs lớn như thế nào tại đây, các package đều hoàn toàn free: https://www.npmjs.com/

-Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị.

Những kết luận sai lầm về Nodejs

  • Thứ nhất, Nodejs là một nền tảng (platform), không phải Web Framework, cũng không phải ngôn ngữ lập trình.

  • Thứ hai, Nodejs không hỗ trợ đa luồng, nó là một máy chủ đơn luồng.

  • Và một điều nữa, Nodejs không dành cho người mới tinh mà chưa biết gì về lập trình, vì như đã nói ở trên, Nodejs không phải là ngôn ngữ lập trình, để học được Nodejs thì bạn cần phải biết về Javascript, kỹ thuật lập trình, một số giao thức…v..v

Kết luận

Trên đầy là cái nhìn tổng quan nhất về Nodejs để chúng ta dễ dàng tiếp cận.
Một số lý thuyết bên nên tìm hiểu thêm như V8 Javascript engine là gì?
Hay xử lý bất đồng bộ, JavaScript Event Loop.

JavaScript là đơn luồng (tính chất “xong cái này mới đến cái khác”). Và điều này làm JavaScript không phù hợp cho các tác vụ đa luồng.

Nguồn tham khảo:

Rất mong được sự ủng hộ của mọi người để mình có động lực ra những bài viết tiếp theo.
{\__/}
( ~.~ )
/ > ♥️ I LOVE YOU 3000

JUST DO IT!


Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Nguyễn Quang Đạt !
Comments
  TOC