Nodejs là gì? Dùng để làm gì? Bạn sẽ toả sáng với kiến thức này

Nội dung bài viết

Video học lập trình mỗi ngày

Node js là gì? Ngày càng có nhiều ứng dụng ra đời có sự đóng góp của Node. Ngày càng có nhiều lập trình viên tìm hiểu về Nodejs. Và ngày càng có nhiều bài viết phân tích về Node.js. Nhưng thật sự nodejs để làm gì? Và tại sao lại dụng thì có thể bạn chưa biết, và nếu có biết thì cũng chỉ một vài phần mà thôi. Hãy xem bài phân tích dưới đây, lúc đó bạn sẽ biết bạn ở đâu?
Thật ra để hiểu về Node.js là gì? Trong bài viết này là khó có thể giúp bạn hiểu được, nên ở đây có tập hợp nhiều bài viết về Tự học Node.js bạn có thể tham khảo nếu có thời gian và mục đích để học.


Đọc hết bài viết này bạn được học những gì?


  • - Hiểu Nodejs là gì? 
  • - Node js giải quyết được vấn đề gì? 
  • - NodeJS framework? 
  • - Node là một nền tảng hay là một ứng dụng js? 
  • - Tính năng của Nodejs là gì? 


Và nên đọc "Nodejs Series: Nơi bắt đầu" của bạn Anph rất ok và OK


Nodejs là gì?


Đầu tiên cách đọc là sao đã? Có nhiều bài viết là NodeJS, cũng có thể là Nodejs. Cũng được không sao cả, nhưng trên trang chủ của Node thì được gọi là Node or Node.js. Nói chung hiểu sao cũng được, không khuyến khích là phải đọc đúng. 


Nodejs là JavaScript runtime chạy theo hướng sự kiện không đồng bộ, Nodejs được thiết kế để xây dựng các ứng dụng lớn hay nhỏ và có thể mở rộng nhanh và ít tốn kém nhất. Vì sao nó lại ít tốn kém, thì chúng ta chút nữa sẽ phân tích ở dưới. Cần nói thêm ở đây, có hai luồng tư tưởng hiểu là Node.js là đơn luồng, và cũng một số người vẫn cho rằng node.js là đa luồng. Và ý kiến của tôi đã phân tích trong bài viết trước đây "Nodejs đã quyết vấn đề kết nối đồng thời cao như thế nào?". Thì lúc đó các bạn sẽ hiểu bản chất rõ hơn và có một kết luận đúng đắn hơn.


Nodejs dùng để làm gì?


Đây có lẽ là một câu hỏi mà bất cứ bạn nào bắt đầu học Nodejs cũng phải hỏi. Và không ngoại lệ tips JavaScript cũng nhận được nhiều câu hỏi "node js dùng để làm gì?". Thì hôm nay, trong bài post này, câu trả lời sẽ làm sáng tỏ cho các bạn đang muốn biết. Trong home page của Node cũng có nói mục tiêu là "Node.js is designed to build scalable network applications". Node dùng để thiết kế , xây dựng một ứng dụng mạng mở rộng. Nói như vậy bố ai mà hiểu khi mà mới học Nodejs đây? Vậy ông nói vậy thì các ngôn ngữ như JAVA, hay PHP không tự ái à? Chả nhẽ họ không build và mở rộng như NodeJS sao? Có gì sai ở đây? Chúng ta làm một bài toán phân tích sau: 


Trong các ngôn ngữ như Java và PHP, mỗi kết nối tạo ra một luồng mới và mỗi luồng mới có thể yêu cầu 2 MB bộ nhớ phù hợp. Trên hệ thống có RAM 8 GB, số lượng kết nối đồng thời tối đa theo lý thuyết là 4.000 người dùng. Khi cơ sở khách hàng của bạn phát triển, nếu bạn muốn ứng dụng web của mình hỗ trợ nhiều người dùng hơn, thì bạn phải thêm nhiều máy chủ hơn. Tất nhiên, điều này sẽ làm tăng chi phí máy chủ, chi phí lưu lượng truy cập và chi phí nhân công. Ngoài chi phí tăng cao này, có một vấn đề kỹ thuật tiềm ẩn, đó là người dùng có thể sử dụng các máy chủ khác nhau cho mỗi yêu cầu, vì vậy mọi tài nguyên được chia sẻ phải được chia sẻ giữa tất cả các máy chủ. 


Chính vì lẽ đó mà Node đã thay đổi khái niệm đó "Thay đổi cách kết nối với máy chủ". Là sao? Có nghĩa là mỗi kết nối tạo ra một sự kiện đang chạy trong tiến trình của công cụ Node, thay vì tạo một chuỗi hệ điều hành mới cho mỗi kết nối (và cấp phát một số bộ nhớ phù hợp cho nó). Và Node cũng tuyên bố rằng máy chủ chạy nó có thể hỗ trợ hàng chục nghìn kết nối đồng thời cao. That's Okay. kakkak


Nodejs tại sao lại C++ mà không phải là Ruby


Có nhiều bạn éo biết rằng lúc đầu tác giả của Nodejs chính là Ryan Dahl đã dùng ngôn ngữ Ruby để viết Nodejs. Nhưng sau đó Anh ấy nhận thấy hiệu suất của máy ảo Ruby không thể đáp ứng được yêu cầu của anh ấy và sau đó anh ấy đã thử V8 và C++. 


Nodejs sử dụng engine V8 của trình duyệt Google Chrome chính vì vậy bạn biết đấy nó rất mạnh có hiệu suất tốt và cung cấp nhiều API nhất là về lập trình mạng. Có một câu hỏi cho các bạn suy nghĩ? Node js không phải là ứng dụng Javascript sao nó lại có ".js" như vậy? Rảnh sẽ có đáp án cho các bạn. Và bài tiếp theo or tôi sẽ cập nhật ở đây về những tính năng của Nodejs mà tần xuất trong phỏng vấn là cao?


5 tính năng của Nodejs chinh phục bạn


Khi nào tỉnh bia sẽ viết thêm.... trước khi rới bài viết này thì nên đọc bài "Nodejs Series: Nơi bắt đầu" của bạn Anph nhé. Cũng rất đáng đấy.

Có thể bạn đã bị missing