2coffee.dev

  • Giới hạn tài nguyên dịch vụ sử dụng pm2
    • 🏷️pm2
    • 🏷️javascript
    • 🏷️node.js

    Giới hạn tài nguyên dịch vụ sử dụng pm2

    Xin chào độc giả của 2coffee.dev, rất lâu rồi mới gặp lại mọi người. Cách đây một hai tuần trước, tôi gặp phải một vấn đề khá thú vị khi triển khai hệ thống. Định thôi không viết nhưng nghĩ lại chắc sẽ có người gặp phải trường hợp này nên lại cặm cụi viết ra. Âu cũng là một lần ghi chép để nhớ và chia sẻ nó đến với mọi người. Hệ thống mà tôi đảm nhiệm có một dịch vụ (service) khá cũ, được triển khai dựa trên pm2 bằng...

    🕝3 tuần trước

  • Di chuyển từ Node.js sang Deno
    • 🏷️node.js
    • 🏷️deno

    Di chuyển từ Node.js sang Deno

    Tôi còn nhớ rất rõ một câu hỏi từ thời còn đang thực tập với anh hướng dẫn. Anh là một Senior phụ trách kèm cặp tôi lúc đó. Khi thấy anh đang làm việc, tôi thốt lên: "Uầy, anh code cả Java ạ?". Anh không nói gì chỉ khẽ cười và tiếp tục công việc của mình. Thế giới lập trình với tôi lúc đó thật nhỏ bé, nếu không có kiến thức và kinh nghiệm, mọi thứ đối với mình thật lạ lẫm, làm sao mà một người có thể biết nhiều thứ đến như vậy?

    🕝2 tháng trước

  • Tổng hợp thư viện hỗ trợ xây dựng ứng dụng CLI cho Node.js
    • 🏷️node.js
    • 🏷️javascript

    Tổng hợp thư viện hỗ trợ xây dựng ứng dụng CLI cho Node.js

    Xin chào các độc giả của 2coffee.dev. Không biết là trong đây có ai đã và đang sử dụng ứng dụng dòng lệnh (CLI) không? Nếu có, tại sao bạn lại lựa chọn thay vì sử dụng ứng dụng có giao diện (GUI)? Nếu như nhớ không nhầm, tôi đã có một vài bài viết nói về quá trình làm một số ứng dụng dành riêng cho mình. Thành thật đối với tôi mà nói, có rất nhiều trường hợp CLI tỏ ra hữu ích hơn hẳn...

    🕝4 tháng trước

  • Sử dụng Clinic.js để tối ưu hoá hiệu suất cho ứng dụng Node.js
    • 🏷️node.js
    • 🏷️perfomance
    • 🏷️tools

    Sử dụng Clinic.js để tối ưu hoá hiệu suất cho ứng dụng Node.js

    Từ khi mới bắt đầu lập trình, tôi đã bị ám ảnh về vấn đề hiệu suất của chương trình mà mình viết ra. Không biết mình viết như thế này đã tốt chưa, đã tối ưu chưa, liệu nó có thể chịu tải được bao nhiêu người dùng cùng lúc... Đó cũng là viên gạch đầu tiên đặt nền móng cho việc đi tìm hiểu sâu hơn về cách hoạt động của các ngôn ngữ lập trình nói chung, hay là Node.js nói riêng. Trải qua nhiều năm tháng, tham gia nhiều dự án và nhận ra...

    🕝5 tháng trước

  • 5 điều tôi thích ở Deno
    • 🏷️deno
    • 🏷️javascript
    • 🏷️node.js

    5 điều tôi thích ở Deno

    Deno phiên bản ổn định đã được giới thiệu cách đây 3-4 năm về trước. Thời điểm đó nó nhận được khá nhiều sự chú ý vì không ai khác - chính Ryan Dahl - cha đẻ của Node.js - cũng đồng thời là người đỡ đầu cho Deno. Hả! Bạn không nghe nhầm đâu. Tại sao anh ta lại tạo ra công cụ mới cạnh tranh với chính "đứa con" của mình chứ? Ryan Dahl đã thừa nhận rằng Node.js tồn tại những điểm yếu chí mạng. Ban đầu, Node.js được thiết kế để tập trung đến sự đơn giản, phóng khoáng. Nhưng qua năm tháng mọi thứ đã...

    🕝6 tháng trước

  • Kiểu dữ liệu Maybe
    • 🏷️javascript
    • 🏷️node.js

    Kiểu dữ liệu Maybe

    Promise trong JavaScript chắc hẳn không còn xa lạ với bất kỳ ai. Một Promise đại diện cho một "lời hứa" rằng khi gọi hàm, nó chắc chắn sẽ trả về giá trị trong tương lai. Cho dù là xử lý được (resolve) hay không được (reject) thì chúng ta đều đoán được khả năng xảy ra 1 trong 2. Và chắc chắn một điều rằng cả 2 không thể xảy ra cùng một lúc. Nếu nghiên cứu kỹ hơn về Promise, bạn sẽ thấy...

    🕝6 tháng trước

  • Series
    Kiến trúc Node.js - process.nextTick, setImmediate và setTimeout
    • 🏷️javascript
    • 🏷️node.js

    Kiến trúc Node.js - process.nextTick, setImmediate và setTimeout

    Ở bài viết trước, chúng ta đã biết 6 pha xử lý trong một vòng lặp sự kiện, về chức năng và các kiểu hàm callback nào được xử lý ở đâu. Ngoài ra còn có một pha đặc biệt gọi là process.nextTick tuy không thuộc Event loop nhưng lại có mức độ ưu tiên cao nhất. Khái niệm tưởng chừng dễ nhưng lại là gây khó dễ cho nhiều người, kể cả lập trình viên lâu năm. Vậy khi đặt process.nextTick, setImmediate và setTimeout lại cùng với nhau. Theo bạn callback trong hàm nào được thực hiện trước...

    🕝7 tháng trước

  • Một số hàm tiện ích trong modules Util của Node.js
    • 🏷️node.js
    • 🏷️javascript

    Một số hàm tiện ích trong modules Util của Node.js

    Node.js là một môi trường chạy mã JavaScript được kết hợp từ nhiều thành phần khác nhau. Trong một loạt bài viết về Kiến trúc Node.js - Giới thiệu về Node.js, chúng ta đã tìm hiểu về những thành phần và cả chức năng của nó. Trong Node, có rất nhiều build-in modules - tức là các modules được tích hợp sẵn ngay từ đầu. Một trong số đó là util mà theo như tôi thấy đang chưa nhận được nhiều sự chú ý. Trong util là tập hợp các hàm tiện ích nho nhỏ có ích trong một số trường hợp. Bài viết ngày hôm nay chúng ta sẽ đi qua một số hàm có trong này nhé...

    🕝9 tháng trước

  • Sử dụng pm2 để quản lý ứng dụng viết bằng Node.js
    • 🏷️node.js
    • 🏷️pm2

    Sử dụng pm2 để quản lý ứng dụng viết bằng Node.js

    Khi mới tiếp xúc với Node.js và cũng là lần đầu học cách sử dụng Linux, nodemon là một thư viện mà tôi thường hay sử dụng để phát triển ứng dụng, vì chỉ cần lưu mã thì ngay lập tức nó sẽ "nạp" lại mã mới mà không cần phải "kill" đi bật lại ứng dụng một cách thủ công nữa, tính năng này ngày nay còn được gọi là "hot reload". Sau bước phát triển là bước triển khai. Trong lúc thực hành chạy ứng dụng ở trên máy chủ, loay hoay mãi không biết làm sao để chạy được nó. Nếu...

    🕝10 tháng trước

  • Bàn về tính bất biến trong JavaScript
    • 🏷️javascript
    • 🏷️node.js

    Bàn về tính bất biến trong JavaScript

    Biến là một thành phần không thể thiếu trong hầu hết ngôn ngữ lập trình. Khi nhắc đến biến, chúng ta thường liên tưởng ngay đến một cú pháp bao gồm từ khóa (keyword), tên biến, kiểu dữ liệu bao gồm cả giá trị ban đầu của nó. Biến - đúng như cái tên của nó, giá trị của biến có thể thay đổi thông qua một phép gán. Việc thay đổi giá trị của biến giúp cho người lập trình tái sử dụng lại được tên biến, tiết kiệm bộ nhớ và...

    🕝1 năm trước