5 lý do khiến các nhà phát triển Javascript thích Deno Over Node

5 lý do khiến nhà phát triển Javascript thích sử dụng Deno hơn so với Node

Chia sẻ kiến thức 29/03/2022

Tác giả NodeJS, Ryan Dahl mới đây đã phát hành bản runtime mới nhằm giải quyết một số thiếu sót của Node. Phản ứng của bạn có thể là “Thật tuyệt, một framework Javascript hoàn toàn khác? Đúng thứ tôi cần…", với tôi cũng vậy, giống như các bạn. Sau khi tìm hiểu những ưu điểm của Node, tôi nhận ra rằng tại sao Deno là thứ mà một nhà phát triển Javascript back-end cần từ năm 2020. Hãy cùng xem 5 lý do khiến các nhà phát triển javascript có trải nghiệm mượt mà và hiện đại hơn nhiều khi sử dụng Deno so với Node nhé.

1. Mô-đun Javascript – ES hiện đại hơn

Nếu bạn là một nhà phát triển React, bạn sẽ nhận thấy rằng cú pháp để nhập các gói bằng NodeJS là khác nhau. Điều này là do Node ra mắt vào năm 2009 và rất nhiều bản cập nhật và cải tiến đã được thực hiện cho Javascript kể từ đó.

Javascript - ES

Trong React (và Deno), mọi người thưởng sử dụng cú pháp import package from ‘package’ nhiều nhất, trong khi Node sử dụng const package = require(“package”)

Việc nhập Mô-đun ES vượt trội hơn rất nhiều bởi:

1.Khi sử dụng import,chỉ có thể tải một cách chọn lọc các phần được yêu cầu từ gói, giúp tiết kiệm được bộ nhớ.
2. Download và require có nhiệm vụ đồng bộ hoá trong khi import tải không đồng bộ, giúp cải thiện được hiệu suất công việc.

2. Các gói phi tập trung

Với Deno, bạn sẽ không bị phụ thuộc vào NPM, không cần package.json. Mỗi gói sẽ được tải từ các URL khác nhau. Trong NodeJS, để sử dụng một gói, cần cài đặt từ NPM (ví dụ cài đặt gói moment): npm i moment

Sau khi cài đặt xong, bạn cần đưa nó vào ứng dụng của bạn: const moment = require(“moment”). Ngoài ra, bất cứ khi nào bạn muốn chạy NodeJS trên máy cục bộ, bạn cần cài đặt tất cả các gói phụ thuộc từ NPM. Trong Deno, các gói đều được nhập từ một URL. Một lợi thế nữa khi nhắc đến các gói trong Deno là mọi gói đều được lưu vào bộ nhớ đệm trên ổ cứng sau khi đã được cài đặt xong. Điều này có nghĩa việc cài đặt sẽ chỉ diễn ra một lần.

Một lợi thế lớn hơn khi sử dụng các gói trong Deno là mọi gói đều được lưu vào bộ nhớ đệm trên ổ cứng sau khi cài đặt xong. Nếu bạn muốn sử dụng lại gói này, ở bất kỳ đâu mã nguồn của mình, bạn sẽ không cần phải tải xuống nữa.

3. TypeScript hoạt động rất tự nhiên, không cần đến cấu hình

Để TypeScript hoạt động với NodeJS bạn cần phải có một quá trình gồm nhiều bước. Đầu tiên phải cài đặt typescript, cập nhật package.json, tsconfig.json và đảm bảo rằng các mô-đun có @types được hỗ trợ. Trong Deno, tất cả những gì bạn cần làm là lưu tệp của mình dưới dạng .ts thay vì .js, trình biên dịch TypeScript đã được cài sẵn ngay tại đó.

4. Mức cao nhất await – Sử dụng các await bên ngoài hàm không đồng bộ

Trong Node,bạn chỉ có thể truy cập vào await phím chức năng không đồng bộ. Với Deno, bạn có thể mang await bất cứ thứ gì ở bất cứ đâu mà không cần gói nó trong hàm không đồng bộ như vậy.

Top level await

Hầu hếttất cả các ứng dụng Javascript đều bao gồm nhiều hàm không đồng bộ. Nâng cấp này giúp cho code sạch sẽ và đơn giản hơn nhiều.

5. Truy cập vào API của trình duyệt (Window, Fetch)

Để thực hiện các yêu cầu HTTP bằng javascript, chúng ta có thể sử dụng API Tìm nạp. Tuy nhiên trong NodeJS, bạn không có quyền truy cập API trình duyệt vì vậy không thể gọi hàm fetch sẵn có. Để làm được điều này, đầu tiên bạn phải cài đặt gói: npm i node-fetch

Sau đó chỉ thị nhập gói trong mã lệnh của mình: const fetch = require(“node-fetch”)

Và chỉ khi đó mới có thể thực hiện gọi hàm fetch. 

Deno nguyên bản có quyền truy cập vào các window object, có nghĩa là bạn có thể tiếp tục và gọi fetch(“https://something.com”) cũng như bất kỳ đối tượng nào khác trong Browser API mà không cần cài đặt thêm bất kỳ thư viện nào

Deno không chỉ dừng lại ở đó

Deno có rất nhiều ưu điểm khác, chẳng hạn như an toàn hơn theo mặc định, có thể thực thi các tệp nhị phân Wasm, có nhiều thư viện tích hợp và danh sách vẫn tiếp tục.

Tất cả các điểm được đề cập trong bài viết này đều được kết nối với nhau, kết hợp với nhau để tạo thành một javascript runtime ở tầng back end 2020 hiện đại hơn. Là một nhà phát triển React, có thể sử dụng cú pháp import, viết await bất cứ nơi nào tôi muốn, sử dụng TypeScript mà không cần cấu hình bất cứ thứ gì, và thậm chí gọi điện fetch mà không cần phải cài đặt gói mới. 

Liệu Deno có thể thay thế Node? Có thể. Hệ sinh thái NodeJS hiện nay là rất lớn, Deno sẽ cần thời gian để bắt kịp. Các lập trình viên JavaScript hiện đang dần quan tâm đến Deno và sử dụng nó cho các dự án mới của mình. Còn bạn thì sao?

Lương Thuận – dịch từ actorfit

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!