Tự học Node.js cơ bản để đi phỏng vấn (13 bài) – 1 – Tổng quan

Một người chưa biết gì về Nodejs, tự mò mẫm để học đầy đủ kiến thức cơ bản về Node.js, sau đó mạnh dạn đi xin việc, hihi. Trình độ không bằng trời độ.


1081

Tại sao nên dùng Node.js

Ngoài việc là một trong những ngôn ngữ lập trình phổ biến nhất trên hành tinh , JavaScript rất mạnh mẽ và dễ học ( he he, tui thấy dễ ). Và Node là JavaScript chạy trên máy chủ.

Node.js là một trong những nền tảng máy chủ phổ biến nhất đang tồn tại MEAN stack . Điều đó có nghĩa là, nếu bạn biết Node, triển vọng công việc và tương lai của bạn khá là súa sảng.

Node mạnh mẽ

Node.js sử dụng mô hình I / O non-blocking và phong cách lập trình không đồng bộ. Mặc dù JavaScript là một ngôn ngữ đơn luồng, nhưng điều này không gây ra vấn đề gì đáng kể cho các ứng dụng Node hoạt động tốt. Các nhà phát triển web JavaScript đã quen với việc lập trình không đồng bộ trong trình duyệt thông qua việc sử dụng các lệnh callback, promise và async / await. Node cho phép bạn làm điều này trên server.

Node cũng có một vũ khí bí mật trong cuộc chiến giành thị trường: vòng lặp sự kiện (event loop). Sử dụng các kỹ thuật lập trình không đồng bộ, kết hợp với vòng lặp sự kiện, xử lý các yêu cầu I / O trong các luồng riêng biệt ở chế độ nền.

Node là một cộng đồng

Cộng đồng Node.js gắn bó, năng động và cởi mở. Chia sẻ mã là tiêu chuẩn trong cộng đồng Node thông qua npm , nơi bạn có thể tìm thấy rất nhiều mã để sử dụng trong các ứng dụng của mình, hoàn chỉnh với tài liệu và mã nguồn.

Muốn tham gia ? Có hàng tá cách bạn có thể đóng góp vào khối công việc vốn đã rộng khắp trong cộng đồng Node.

Điều kiện tiên quyết

Bạn nên làm quen với JavaScript. Chỉ vậy thôi, quá dễ – như leo rank kim cương ấy mà 😀

Nếu bạn sinh viên và skill lập trình còn yếu, có thể bạn sẽ gặp khó khăn chút đỉnh, js khá bựa. May mắn thay, có rất nhiều bài viết tuyệt vời khác về chủ đề Node.js tại đây giúp bạn tự tin chém gió.

Bạn cũng nên quen với việc sử dụng dòng lệnh (command, cli ) trong môi trường unix ( macos và ubuntu ).

Phần 2: Cài đặt phần mềm Node.js và npm

Phần này chỉ cho bạn cách cài đặt node cùng với cách npm quản lý các project Node, tôi chỉ cho bạn ba cách để cài đặt Nodejs:

  • Tải xuống từ nodejs.org – tải xuống gói cài đặt cho hệ điều hành của bạn và cài đặt nó trên máy tính.
  • Homebrew (chỉ dành cho MacOS) – tải xuống và cài đặt Homebrew, sau đó cài đặt Node bằng brew install node
  • Node Version Manager (nvm) – tải xuống và cài đặt nvm, sau đó cài đặt Node bằng cách sử dụng ‘nvm install` để cài đặt phiên bản Node bạn muốn

Sau khi hoàn thành Phần 2, bạn sẽ sẵn sàng để viết các chương trình Node.

Đọc phần 2

Phần 3: Node.js là gì

  • Thời gian chạy Node, bao gồm:
    • API Node: Các tiện ích JavaScript: file, network, I/O cryptography và compression.
    • Node core: một tập hợp các mô-đun JavaScript triển khai Node API.
    • Công cụ JavaScript: Công cụ V8 của Chrome, một trình biên dịch mã JavaScript thành mã máy để tải nhanh hơn, tối ưu hóa và chạy mã JavaScript của bạn
    • Vòng lặp sự kiện: được triển khai bằng cách sử dụng thư viện I / O hướng sự kiện, không chặn được gọi là libuv để làm cho nó nhẹ và hiệu quả (và có thể mở rộng)
  • Vòng lặp Read-Eval-Print (REPL)
  • Mô hình I / O không chặn
  • Hệ sinh thái npm

Bạn càng hiểu rõ về kiến ​​trúc Node và mô hình I / O non blocking, bạn càng dễ trở thành lập trình viên Node tốt hơn. 

Đọc phần 3

Bài 4: Các khái niệm về Node.js

Đến đây bạn sẽ tìm hiểu thêm về mô hình I / O non blocking, Node và phong cách lập trình không đồng bộ. Điều quan trọng là phải củng cố những khái niệm này trong tâm trí bạn nếu bạn muốn trở thành một lập trình viên Node hiệu quả.

Sau đó, bạn kiểm tra hệ thống mô-đun của Node: cách sử dụng và tạo mô-đun, cách làm việc với mô-đun và khi nào sử dụng chúng.

Tôi chỉ cho bạn cách sử dụng trình biên dịch Chrome V8 để tìm kiếm các vấn đề về hiệu suất trong code của bạn.

Sau khi hoàn thành hướng dẫn này, bạn sẽ nắm rõ về I / O non blocking, lập trình không đồng bộ, công cụ Chrome V8 và kiểm tra tốc độ tải.

Đọc phần 4

Bài 5: Vòng lặp sự kiện – event loop trong nodejs

Tìm hiểu chi tiết hơn về vòng lặp sự kiện, tại sao nó được sử dụng và các giai đoạn của vòng lặp sự kiện, cách sử dụng callback cho timers, I / O, process.nextTick () và Promises. Các chủ đề khác mà tôi đề cập bao gồm:

  • Node event và cách tạo custom event
  • Thread và cách sử dụng chúng để vạch ra giai đoạn của vòng lặp sự kiện
  • Cách truyền đối số cho timer callbacks

Sau khi hoàn thành hướng dẫn này, bạn sẽ nắm rõ về Node nói chung và vòng lặp sự kiện nói riêng.

Đọc phần 5

Bài 6: Tự viết ứng dụng Node.js đầu tiên của bạn

Trong Phần 6, bạn tham gia vào dự án Node giả, nơi bạn viết xong phần lõi của một ứng dụng cho phép người dùng tạo danh sách mua sắm. Phần này giới thiệu cho bạn cách bạn sẽ làm việc với Node với tư cách là một developer trong một dự án thực tế.

Bạn sẽ hoàn thành các enpoint RESTful api service để hỗ trợ ứng dụng “Danh sách mua sắm” mà công ty pha ke của bạn đã bán cho khách hàng, phát triển ứng dụng “Danh sách mua sắm” và tìm hiểu về functional tests, cách tải dữ liệu vào cơ sở dữ liệu và cách debug code của bạn trong VSCode.

Sau khi hoàn thành hướng dẫn này, bạn sẽ viết được ứng dụng Node.js đầu tiên của mình và sẽ sẵn sàng chuyển sâu hơn vào lập trình Node.

Đọc phần 6

Đơn vị 7: Trình quản lý nodejs package (npm)

Package management là một phần không thể thiếu của lập trình Node. Không chỉ là một chương trình quản lý packages ( npm), npm là documents, module và toàn bộ hệ sinh thái. 

Sau khi hoàn thành hướng dẫn này, bạn sẽ nắm rõ cách dùng npm.

Đọc phần 7

Bài 8: Quản lý Nodejs dependency

Trọng tâm của phần này là file package.json, là một bản kê khai cho dự án Node của bạn. Nó bao gồm:

  • Project metadata: như name, version, author, …
  • Dependency information in SemVer (Semantic Versioning) format
  • Và nhiều thứ khác nữa …

Tôi sẽ chỉ cho bạn cách tạo một dự án Node mới, bằng cách dùng lệnh npm , và file package.json

Sau khi hoàn thành hướng dẫn này, bạn sẽ hiểu cặn kẽ về quản lý phụ thuộc Node và vai trò của quản lý package.json trong các dự án Node của bạn.

Đọc phần 8

Bài 9: Testing

Kiểm thử là một phần cơ bản của phát triển phần mềm. Trong Phần 9, tôi chỉ cho bạn một số công cụ sẽ giúp bạn kiểm tra các ứng dụng Node của mình để phát hiện bất kỳ lỗi nào:

  • Mocha – testing framework
  • Chai – thư viện
  • Sinon – thư viện

Sử dụng ba công cụ này cùng nhau sẽ giúp bạn xây dựng phần mềm tuyệt vời, không có lỗi.

Bạn cũng học cách chạy một công cụ có tên là linter trên mã của mình, công cụ này phân tích các lỗi có thể xảy ra và đảm bảo rằng mã của bạn tuân theo phong cách mã nhất quán, tiêu chuẩn.

Đọc phần 9

Áp dụng những gì bạn đã học

Phần hai là nơi bạn sẽ thực hành những gì bạn đã học và giải quyết một số vấn đề mà bạn chắc chắn gặp phải với tư cách là một nhà phát triển Node chuyên nghiệp.

Dưới đây là tóm tắt nhanh về từng đơn vị trong Phần thứ hai.

Bài 10: Ghi Logs

Ghi logs ứng dụng là một lĩnh vực cần có chiến lược rõ ràng. console.log()thì tốt cho newbie, nhưng senior developers thì sử dụng các package ghi logs.

Trong Phần 10. tìm hiểu cách sử dụng hai package ghi logs rất phổ biến cho các ứng dụng Node:

Đọc phần 10

Bài 11: ExpressJS

ExpressJS là một nodejs framework mã nguồn mở, tối giản, hiệu suất cao và có lẽ là phổ biến nhất được sử dụng cho các ứng dụng Node.js. Như một minh chứng cho hiệu suất và sự phổ biến của nó, Express cũng là xương sống cho các framework phổ biến khác như LoopBack

Trong Phần 11, bạn làm việc với giao diện web Express để tạo ra cái api và xử lý giao diện bằng Pug (trước đây là Jade).

Đọc phần 11

Bài 12: MongoDB

MongoDB là một trong những cơ sở dữ liệu NoSQL phổ biến nhất trên thiên hà Milky Way, cái này chả phải bàn thêm.

Trong hướng dẫn này, bạn làm việc với ứng dụng “Danh sách mua sắm” một lần nữa, chỉ lần này hệ thống ghi là MongoDB. Tôi cung cấp cho bạn thông tin tổng quan về MongoDB, hướng dẫn bạn cách cài đặt nó cho MacOS, Windows và Linux, đồng thời chỉ cho bạn cách các Thành phần truy cập dữ liệu của ứng dụng Danh sách mua sắm sử dụng MongoDB.

Tôi cũng giới thiệu với bạn Mongoose , một tiện ích ánh xạ dữ liệu đối tượng (ODM) cực kỳ phổ biến cho MongoDB. 

Đọc phần 12

Unit 13: Debugging and profiling

Đôi khi mã chúng ta viết có các lỗi rất khó tìm ra, đó là lúc trình gỡ lỗi cao cấp ra tay.

Khả năng debugging và profilling là một kỹ năng tuyệt vời buộc phải có đối với bất kỳ developer nào.

Trong Phần 13, tôi chỉ cho bạn cách sử dụng trình gỡ lỗi VSCode để xem từng dòng mã của bạn. Tìm hiểu cách kiểm tra các biến, thiết lập biểu thức đồng hồ và thậm chí cách gỡ lỗi kiểm tra Mocha.

Tôi cũng hướng dẫn bạn cách sử dụng Apache Bench (mà tôi giới thiệu trong Phần 4) với một công cụ lập hồ sơ có tên là clinic để tìm các điểm nóng trong mã của bạn.

Đọc phần 13


Like it? Share with your friends!

1081