Vậy chính xác Nodejs là gì?

  1. Tại sao chọn node.js
  2. Vậy chính xác Nodejs là gì? (Đang xem)

Trong năm 2009, một người tên là Ryan Dahl đang làm việc cho một công ty tên là Joyent, một công ty dịch vụ ảo hóa đám mây và ở California. Ông đang tìm kiếm khả năng push cho các ứng dụng web, tương tự như cách Gmail thực hiện và những gì ông đã tìm thấy là có vẻ không quá đặc biệt. Cuối cùng, ông đã chọn phát triển nền tảng với JavaScript vì nó thiếu mô hình đầu vào / đầu ra (I/O) mạnh mẽ (có nghĩa là ông có thể viết một bản mới), có thời gian để thực thi tác vụ nhanh và một môi trường V8 được xây dựng đầy đủ.

Lấy cảm hứng từ một số dự án tương tự trong cộng đồng Ruby và Python, cuối cùng ông đã dùng Chrome V8 runtime cùng với một thư viện xử lý sự kiện được gọi là libev và đưa ra các phiên bản đầu tiên của một hệ thống mới có tên là Node.js. Phương pháp luận chủ yếu hay sự đổi mới trong Node.js là nó được xây dựng hoàn toàn xung quanh mô hình lập trình theo sự kiện nonblocking.

Nếu ứng dụng web của bạn cần chạy một truy vấn cơ sở dữ liệu để xử lý yêu cầu và tạo ra một phản hồi, nó sẽ chạy yêu cầu và sau đó cho Node.js biết phải làm gì khi đáp ứng trả về. Trong thời gian chờ đợi, mã của bạn được tự do để bắt đầu xử lý các yêu cầu được gửi đến khác hoặc, thực sự, thực hiện bất kỳ tác vụ nào khác mà nó có thể cần, chẳng hạn như làm sạch dữ liệu hoặc chạy các phân tích.

Thông qua sự thay đổi đơn giản này trong cách ứng dụng của bạn xử lý các yêu cầu và công việc, bạn có thể viết các máy chủ web có thể xử lý hàng trăm, nếu không phải hàng ngàn, các yêu cầu đồng thời trên các máy không có nhiều tài nguyên xử lý hoặc bộ nhớ. Node.js chạy trong một tiến trình duy nhất, và mã của bạn thực hiện chủ yếu trong một luồng, vì vậy các yêu cầu về tài nguyên thấp hơn nhiều so với nhiều nền tảng khác.

Tuy nhiên, tốc độ và dung lượng này đi kèm với một vài lưu ý, và bạn cần phải hiểu về chúng để bạn có thể bắt đầu làm việc với Node bằng kiến thức của bạn.

Trước hết, mô hình mới khác với những gì bạn đã từng thấy trước đây và đôi khi có thể khiến bạn hơi bối rối. Cho đến khi bạn đã tìm hiểu toàn bộ các kiến thức liên quan với một số khái niệm cốt lõi, một số mã mà bạn thấy được viết bằng Node.js có thể có vẻ hơi lạ.

Một hạn chế nữa với mô hình lập trình này là nó thực sự là trung tâm xung quanh các ứng dụng đang làm nhiều thứ khác nhau với nhiều quy trình, máy chủ hoặc dịch vụ khác nhau. Node.js thực sự tỏa sáng khi ứng dụng web của bạn kết nối với cơ sở dữ liệu, máy chủ lưu trữ bộ nhớ đệm, hệ thống tệp, máy chủ ứng dụng và hơn thế nữa. Tuy nhiên, nó không nhất thiết phải là một môi trường tối ưu cho việc viết các máy chủ tính toán mà đang thực hiện các thuật toán đáng gờm chạy trong một thời gian dài. Đối với những mô hình này, mô hình Node với một luồng duy nhất trong một tiến trình có thể gây ra vấn đề nếu một yêu cầu nhất định phải mất rất nhiều thời gian để tạo mật khẩu phức tạp hoặc dựng lên một hình ảnh. Trong những tình huống mà bạn đang làm công việc có tính toán nhiều hơn, bạn cần phải cẩn thận cách ứng dụng của bạn sử dụng các tài nguyên, hoặc thậm chí xem xét việc thực hiện các tác vụ đó ra các nền tảng khác và chạy nó như một dịch vụ cho các chương trình Node.js của bạn sử gọi vào.

Cuối cùng, Node.js là một nền tảng mới hợp lý và đang được phát triển tích cực. Nó vẫn chưa thành công với phiên bản 1.0, và liên tục đưa ra các phiên bản mới, đôi khi với tốc độ chóng mặt.

Để giảm thiểu lộn xộn và phiền hà do những cập nhật thường xuyên này, các nhà phát triển đã thực hiện dán nhãn các phần của hệ thống với mức độ ổn định khác nhau, từ Unstable đến Stable đến Locked. Những thay đổi đối với các phần Stable hoặc Locked của thời gian chạy là rất hiếm và có nhiều cuộc thảo luận của cộng đồng để xác định liệu nó có gây ra nhiều sự nhọc nhằn hay không.

Tin tốt lành là Node.js đã có một cộng đồng người dùng lớn, tích cực và một loạt các danh sách mail, diễn đàn và nhóm người sử dụng dành cho việc quảng bá nền tảng và cung cấp trợ giúp nếu cần. Một tìm kiếm Google đơn giản sẽ giúp bạn có được câu trả lời cho 99 phần trăm các câu hỏi của bạn chỉ trong vài giây, do đó, đừng bao giờ sợ phải tìm kiếm!

Sharing is caring!

Chủ đề:

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *