NỘI DUNG BÀI VIẾT
Bài viết được đúc kết từ quá trình “chuyển từ PHP sang Node.js” của tôi. Hy vọng có thể giúp đỡ bạn phần nào trong việc học tập cũng như tư duy đúng đắn.
Tôi đã là một lập trình viên PHP được vài năm và tôi yêu thích PHP. Tuy nhiên, tôi tin rằng việc học các ngôn ngữ lập trình khác chỉ có thể khiến bạn trở thành một lập trình viên tốt hơn. Đó là lý do tại sao tôi quyết định khai thác thế giới mới thú vị của Node.js. (lưu ý: có thể không quá mới, nhưng hãy nhớ với tôi, dù gì thì tôi cũng là một lập trình viên PHP).
Sau khi tìm kiếm trên google “Node.js cho các khóa học dành cho người mới bắt đầu” đầu tiên, tôi nhận ra rằng mình còn thiếu một số điều cơ bản và có rất nhiều điều mà tôi sẽ phải giải quyết. Có hàng triệu hướng dẫn trên mạng và tất cả đều có thể hơi choáng ngợp khi bạn bắt đầu học một thứ gì đó mới.
Tôi muốn điều này càng đơn giản càng tốt vì vậy tôi đã chọn mục yêu thích của mình cho từng “danh mục”.
Cách chuyển từ PHP sang Node.js
JavaScript
Node.js là một trình chạy JavaScript. Nếu bạn không biết “thời gian chạy” là gì vào lúc này, hãy bỏ qua nó một lúc.
Node.js là JavaScript [chèn một cái gì đó]. Điều đó có nghĩa là bạn sẽ phải học JavaScript.
Đây là một tài liệu được chứng minh là hữu ích nhất đối với tôi. Nó bao gồm những điều cơ bản cũng như một số khái niệm nâng cao. Tôi đã gặp khó khăn khi chuyển sang không đồng bộ và theo ý kiến của tôi, tài liệu này giải thích điều đó để bạn có thể hiểu đầy đủ về cách JavaScript sử dụng lập trình không đồng bộ.
TypeScript
Sử dụng TypeScript. Tôi thậm chí sẽ không giải thích tại sao, chỉ cần sử dụng nó. TypeScript là JavaScript với một số chức năng được bổ sung (như bạn đã đoán ra, các loại).
Tài liệu chính thức ngắn gọn và chúng sẽ cung cấp cho bạn ý tưởng về sự khác biệt giữa việc sử dụng TypeScript sang JavaScript. Nhưng như tôi đã nói, nó thực sự là JavaScript nên trong khi học JavaScript, bạn cũng đang học TypeScript.
Node.js
Bây giờ bạn sẽ tìm hiểu thời gian chạy hoặc V8 là gì? Và Node.js thực sự là gì?
Node.js là một môi trường thời gian chạy JavaScript đa nền tảng và mã nguồn mở. Nó là một công cụ phổ biến cho hầu hết mọi loại dự án!
Node.js chạy công cụ JavaScript V8, cốt lõi của Google Chrome, bên ngoài trình duyệt. Điều này cho phép Node.js hoạt động rất hiệu quả.
Ứng dụng Node.js chạy trong một quy trình duy nhất mà không cần tạo luồng mới cho mọi yêu cầu. Node.js cung cấp một tập hợp các nguyên thủy I / O không đồng bộ trong thư viện tiêu chuẩn của nó để ngăn chặn mã JavaScript chặn và nói chung, các thư viện trong Node.js được viết bằng cách sử dụng các mô hình không chặn, làm cho hành vi chặn trở thành ngoại lệ thay vì tiêu chuẩn.
Khi Node.js thực hiện một hoạt động I / O, như đọc từ mạng, truy cập cơ sở dữ liệu hoặc hệ thống tệp, thay vì chặn luồng và lãng phí chu kỳ CPU chờ đợi, Node.js sẽ tiếp tục hoạt động khi phản hồi trở lại.
Điều này cho phép Node.js xử lý hàng nghìn kết nối đồng thời với một máy chủ duy nhất mà không gây ra gánh nặng quản lý đồng thời luồng, vốn có thể là một nguồn lỗi đáng kể.
Node.js có một lợi thế duy nhất vì hàng triệu lập trình viên giao diện người dùng viết JavaScript cho trình duyệt hiện có thể viết mã phía máy chủ ngoài mã phía máy khách mà không cần phải học một ngôn ngữ hoàn toàn khác.
Trong Node.js, các tiêu chuẩn ECMAScript mới có thể được sử dụng mà không gặp sự cố, vì bạn không phải đợi tất cả người dùng của mình cập nhật trình duyệt của họ – bạn chịu trách nhiệm quyết định phiên bản ECMAScript nào sẽ sử dụng bằng cách thay đổi phiên bản Node.js, và bạn cũng có thể bật các tính năng thử nghiệm cụ thể bằng cách chạy Node.js với cờ.
Tìm hiểu thêm về Nest.js
Tìm hiểu một khung Node.js! Tôi đã có cơ hội làm việc với Nest.js và tôi thực sự thích nó. Rất nhiều người sử dụng Express.js vì vậy đó là một khả năng khác.
Nest (NestJS) là một khuôn khổ để xây dựng các ứng dụng phía máy chủ Node.js hiệu quả, có thể mở rộng . Nó sử dụng JavaScript tiến bộ, được xây dựng và hỗ trợ đầy đủ TypeScript (nhưng vẫn cho phép các lập trình viên viết mã bằng JavaScript thuần túy) và kết hợp các yếu tố của OOP (Lập trình hướng đối tượng), FP (Lập trình chức năng) và FRP (Lập trình phản ứng chức năng).
Bên cạnh đó, Nest sử dụng các khung Máy chủ HTTP mạnh mẽ như Express (mặc định) và tùy chọn có thể được định cấu hình để sử dụng cả Fastify !
Nest cung cấp mức độ trừu tượng cao hơn các khung Node.js phổ biến này (Express / Fastify), nhưng cũng hiển thị trực tiếp các API của họ cho lập trình viên. Điều này cho phép các lập trình viên tự do sử dụng vô số mô-đun của bên thứ ba có sẵn cho nền tảng cơ bản.
Ghi nhớ
Trong bài viết này, tôi nhận ra rằng hầu hết các mục yêu thích của tôi đều là tài liệu chính thức. Có lẽ đó là điều mà tất cả chúng ta nên nhớ: tham gia các khóa học là rất tốt, có rất nhiều tài nguyên hữu ích và những người ở đó và chúng ta nên tận dụng nó. Tuy nhiên, khi học một thứ gì đó hoàn toàn mới, hãy bám vào những điều cơ bản và RTFM.
Nếu bạn đang băn khoăn không biết phải làm gì tiếp theo, hãy làm điều gì đó khiến bạn hứng thú với bộ kỹ năng mới của mình!
Find something that sounds interesting and happy coding <3
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU
KHOÁ HỌC BOOTCAMP JAVA/PHP/.NET TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG