Nodejs dụng để làm gì

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

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

nodejs-la-gi-thumbnail

NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine – trình thông dịch thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng.

Theo khảo sát của Stack Overflow về các framework, nền tảng được sử dụng nhiều nhất năm 2019, NodeJS đã giành vị trí số 1 với số lượng người dùng lên đến gần 50%. Điều đó cho thấy nếu học NodeJS, cơ hội việc làm của bạn sẽ vô cùng rộng mở.

Bài viết này sẽ cung cấp cho bạn những tài liệu NodeJS chất nhất (tiếng Anh + tiếng Việt), giúp bạn:

  • Hiểu NodeJS là gì và làm chủ nền tảng này nhanh chóng
  • Cập nhật các kiến thức mới về NodeJS
  • Giao lưu và học hỏi từ cộng đồng NodeJS uy tín

Xem thêm việc làm NodeJS trên ITviec

NodeJS là gì?

NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine – trình thông dịch thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng.

NodeJS được phát triển bởi Ryan Dahl vào năm 2009 và có thể chạy trên nhiều hệ điều hành khác nhau: OS X, Microsoft Windows, Linux.

Lý do nên học NodeJS là gì?

  • NodeJS được viết bằng JavaScript với cộng đồng người dùng lớn mạnh. Nếu bạn cần hỗ trợ gì về NodeJS, sẽ nhanh chóng có người hỗ trợ bạn.
  • Tốc độ xử lý nhanh. Nhờ cơ chế xử lý bất đồng độ (non-blocking), NodeJS có thể xử lý hàng ngàn kết nối cùng lúc mà không gặp bất cứ khó khăn nào.
  • Dễ dàng mở rộng. Nếu bạn có nhu cầu phát triển website thì tính năng dễ dàng mở rộng của NodeJS là một lợi thế cực kỳ quan trọng.

Tài liệu học NodeJS

Những tài liệu học NodeJS dưới đây sẽ được trình bày dưới dạng: tutorial, các khóa học và ebook. Bạn có thể nhanh chóng chọn hình thức học mà mình cảm thấy hứng thú nhất để bắt đầu.

NodeJS tutorial

1. Learn NodeJS in 1 Hour

Tutorial dành cho beginner với hơn 1,5 triệu lượt xem, như một lời đảm bảo rằng bạn sẽ không tốn thời gian vô ích. Ngoài NodeJS, bạn còn có thể học được nhiều thứ hay ho về lập trình từ kênh Youtube của chính tác giả.

Vì sao bạn nên xem tutorial này:

  • Đơn giản, dễ hiểu, chỉ mất 1 tiếng đồng hồ để biết NodeJS là gì và có ăn được không.
  • Giới thiệu chi tiết về từng module trong NodeJS và cách sử dụng chúng.

2. Cài đặt NodeJS trên MacOS và Ubuntu bằng dòng lệnh

Được biên soạn hoàn toàn bằng tiếng Việt, tutorial này phù hợp cho những bạn không giỏi tiếng Anh. Với giải thích trực quan và hỗ trợ nhanh chóng từ tác giả ở phần bình luận, bạn sẽ không gặp bất cứ khó khăn gì trong việc làm quen với NodeJS.

Nội dung chính của tutorial:

  • Cài đặt Homebrew để quản lý các package trong MacOS.
  • Sử dụng lệnh brew trong MacOS hoặc apt trong Ubuntu để cài đặt NodeJS và npm.
  • Sử dụng npm init để tạo một dự án NodeJS bằng dòng lệnh.
  • Chạy file NodeJS bằng lệnh NodeJS trên MacOS và Ubuntu, so sánh kết quả.

3. NodeJS Advanced Tutorials

Trang web nổi tiếng về các tutorial về lập trình như tutorialspoint chắc chắn không thể thiếu hướng dẫn về NodeJS.

Nếu bạn đang tò mò muốn biết Tutorial này chứa đựng những gì thì đó là:

  • Tất tần tật cách thức làm việc với các phần chủ đạo của NodeJS, từ môi trường cài đặt, npm cho đến streams, Buffers, Restful API, Express..
  • Cung cấp những tài liệu hữu ích khác liên quan đến NodeJS.
nodejs-la-gi-1

4. NodeJS Tutorial: Learn in 3 Days

Nếu bạn chỉ muốn tìm hiểu NodeJS ở mức độ cơ bản, không quá đi vào chi tiết thì tutorial này, với thời lượng 3 ngày, rất đáng để bạn cân nhắc.

Ngoài những thứ cần phải biết như các module, Express hay MongoDB, bạn còn được hướng dẫn về:

  • NodeJS Promise và Bluebird Promises.
  • Trình tạo NodeJS và Callbacks.
  • Kiểm tra NodeJS với Jasmine.

Các khóa học lập trình NodeJS

1. Developing Cloud Applications with Node.js and React

Được biên soạn bởi IBM với thời lượng học khoảng 5 tuần và hoàn toàn miễn phí, khóa học rất đáng để bạn đầu tư thời gian và công sức.

Nội dung chính của khóa học xoay quanh:

  • Tạo ứng dụng phía máy chủ với khung Javascript Node.js
  • Triển khai ứng dụng web của bạn lên nền tảng Đám mây của IBM
  • Mở rộng ứng dụng Node.js của bạn với các gói của bên thứ ba

2. Learn NodeJS

Nếu bạn là người không giỏi kiên nhẫn và muốn biết NodeJS là gì nhanh nhất có thể thì đây chính xác là khóa học phù hợp nhất cho bạn. Được thiết kế vô cùng ngắn gọn, có thể hoàn thành chỉ trong 1 tiếng đồng hồ với hơn 45 triệu người tham gia. Còn gì tuyệt vời hơn!

Sau khóa học, bạn sẽ:

  • Biết được sự khác nhau giữa các components của một ứng dụng web back-end.
  • Khám phá môi trường NodeJS JavaScript runtime.
  • Xây dựng ứng dụng mạnh mẽ nhờ vào Express.
nodejs-la-gi-2

3. Khóa học lập trình NodeJS

Đây là khóa học NodeJS được trình bày hoàn toàn bằng tiếng Việt đến từ Khoa Phạm – đơn vị khá uy tín trong việc phát hành các khóa học online. Nếu hoàn thành hơn 80% khóa học, bạn sẽ được cấp chứng nhận, khá có lợi khi bạn đi phỏng vấn.

Một số nội dung chính trong khóa học:

  • Học về lập trình NodeJS ở phía server, quy trình hoạt động của NodeJS.
  • Xây dựng Restful API, kết nối cơ sở dữ liệu MySQL, MongoDB và cách sử dụng Express, SocketIO.
  • Những dự án thực tế chạy trên nền tảng NodeJS để đảm bảo bạn nắm được những kiến thức đã học.

Sách học NodeJS

1. Get Programming with NodeJS

Get Programming with NodeJS dạy bạn cách viết back-end code bằng JavaScript, sử dụng NodeJS. Nhiều minh họa vui nhộn, ví dụ cụ thể và nhịp độ tương đối nhanh, bạn sẽ không bao giờ cảm thấy nhàm chán.

Cụ thể thì sách sẽ bao gồm những nội dung chính:

  • Tìm hiểu các bước quan trọng để cài đặt và làm việc với NodeJS.
  • Cách thiết lập một ứng dụng bằng Express và kết nối với dữ liệu MongoDB.
  • Cách xây dựng API, thêm chức năng chat cho ứng dụng web và quản lý code trên môi trường production hiệu quả.

2. Mastering NodeJS

Mastering NodeJS được viết bởi Sandro Pasquali, là một trong những cuốn sách viết về các concept chủ đạo của NodeJS như streams, child processes, clustering, events…

Tác giả muốn nhắc nhở độc giả đừng chỉ tập trung vào MEAN Stack hay Express – module phổ biến của NodeJS mà nên nắm cả những concept chính của nó để có thể suy nghĩ tốt hơn và thiết kế hệ thống mở rộng hiệu quả hơn.

Đọc hết cuốn sách, bạn sẽ biết được:

  • Cách NodeJS sử dụng công cụ V8 của Google trên server.
  • Tận dụng hệ thống module của NodeJS để thiết kế các ứng dụng có thể dễ dàng mở rộng.
  • Tìm hiểu kỹ thuật mở rộng và hoạt động song song trên nhiều lõi (core).
nodejs-la-gi-3

3. NodeJS Design Patterns

Design patterns là một phần thiết yếu của những đoạn code chất lượng và bởi vì JavaScript là một ngôn ngữ động nên việc đưa ra được design pattern tốt nhất có vẻ càng khó khăn hơn. Cuốn sách bao gồm nhiều design pattern kèm ví dụ, bạn có thể sử dụng chúng để viết code chất lượng trong NodeJS.

Sách sẽ giúp bạn:

  • Thiết kế và triển khai một loạt các pattern JavaScript phía server, bạn sẽ hiểu tại sao và khi nào nên áp dụng chúng trong các tình huống khác nhau.
  • Xác định các yếu tố quan trọng nhất và áp dụng các thủ thuật độc đáo nhằm làm tăng khả năng mở rộng cho các ứng dụng NodeJS.
  • Khám phá các xu hướng mới nhất trong Universal JavaScript và tìm hiểu cách viết code chạy trên cả NodeJS và trình duyệt.

4. The NodeJS Beginner & Craftsman Bundle

Sự kết hợp tuyệt vời của 2 cuốn sách “The NodeJS Beginner Book” và “The NodeJS Craftsman” sẽ giúp bạn hoàn toàn làm chủ việc phát triển JavaScript ở phía server thông qua NodeJS. Sách có hơn 220 trang, rất đầy đủ và chi tiết.

Bạn sẽ biết được:

  • Chính xác khái niệm NodeJS và cách nó hoạt động.
  • Làm thế nào để kết nối đến 1 dữ liệu như MongoDB hay MYSQL từ ứng dụng NodeJS.
  • Làm thế nào để tích hợp NodeJS với AngularJS.

5. Mixu’s NodeJS book

Tác giả ebook tên thật là Mikito Takada, hiện đang là lập trình viên của Stripe. Bằng những kinh nghiệm làm việc với NodeJS của mình, tác giả mang đến góc nhìn chân thực và những ví dụ cụ thể. Việc học NodeJS chưa bao giờ dễ dàng đến vậy. Bạn có thể đọc trực tiếp trên website của Mixu.

Bạn sẽ nắm được những điểm mấu chốt sau trong cuốn sách:

  • NodeJS là gì và các khái niệm cơ bản liên quan: V8, Arrays, Objects, JSON.
  • Các thư viện và pattern NodeJS phổ biến.
  • Tìm hiểu thêm về Comet và Socket.io.

6. NodeJS Handbook

Xuất bản năm 2018 với 189 trang, NodeJS Handbook dường như chứa tất cả những thông tin cần thiết nhất cho một người mới, muốn tìm hiểu về NodeJS. Ebook hoàn toàn miễn phí.

Những thông tin bạn gặt hái được từ ebook:

  • Giới thiệu chi tiết về NodeJS, cách cài đặt NodeJS và khối lượng JavaScript bạn cần có để bắt đầu học NodeJS.
  • Cách sử dụng các module của NodeJS và npm.
  • Cách làm việc hiệu quả với command line, event loop và lập trình không đồng bộ.

7. Learn and Master NodeJS

Đúng như tên gọi, ebook này giúp bạn bắt đầu hành trình từ lúc chưa biết gì về NodeJS cho đến khi làm chủ nền tảng này. Với sự kết hợp của Ben Sparks và Pablo Farias Navarro, ebook hứa hẹn mang lại nhiều góc nhìn mới cho độc giả.

Bạn sẽ học được khá nhiều điểm hay ho:

  • Làm quen với REST API và cách tạo bảng xếp hạng API.
  • Cách làm việc với MYSQL và NodeJS.
  • Làm thế nào để tải lên một file CSV từ NodeJS.

8. NodeJS Succinctly

Ngoài những kiến thức cơ bản về NodeJS bạn có thể tìm thấy ở nhiều nguồn khác, NodeJS Succinctly còn bổ sung nhiều hướng dẫn thú vị về cách phát huy tối đa sức mạnh của nền tảng cực phổ biến với các Developer.

Đó là:

  • Cách sử dụng Filesystems và streams cùng các hệ sinh thái phổ biến của NodeJS.
  • Hướng dẫn viết một ứng dụng web real-time với WebSocket.
  • Liệt kê những công cụ hỗ trợ hữu ích cho việc xây dựng và thử nghiệm.

9. Web Development with NodeJS and Express

Nếu bạn đang tìm kiếm một hướng đi để tận dụng lợi thế từ các stack JavaScript thì đây là một trong những cuốn sách hay nhất để học về NodeJS và Express framework.

Sách giúp bạn:

  • Tạo một hệ thống các trang web mẫu để hiển thị các dữ liệu động.
  • Mô phỏng môi trường production để thử nghiệm (testing) và phát triển (development).
  • Sử dụng API RESTful để cung cấp tài nguyên của bạn cho các chương trình khác.

Điều khiến bạn hứng thú khi học NodeJS là gì? Bạn nghĩ những tài liệu học NodeJS này hữu ích với bạn bè của mình? Chia sẻ bài viết ngay để giúp cộng đồng Developer cùng phát triển.

Và đừng quên xem hàng trăm việc làm Developer trên ITviec.