2coffee.dev

  • 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é...

    1 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à...

    8 tháng trước

  • Promise, cách sử dụng và một vài lưu ý!
    • promise
    • javascript
    • node.js

    Promise, cách sử dụng và một vài lưu ý!

    Sẽ thật là thiếu sót nếu không nói về Promise trong JavaScript. Thực tế, các bài viết về Promise đã có rất nhiều người viết, bạn đọc có thể tìm thấy chúng bằng Google hoặc thi thoảng lại bắt gặp trên một hội nhóm có liên quan đến lập trình nào đó. Nhưng vì Promise là một kiến thức quan trọng và mỗi người lại có cách truyền đạt khác nhau cho nên tôi vẫn quyết định viết bài này. Thời gian đầu mới học JavaScript, Promise là thứ gây nhầm lẫn nhiều nhất. Cứ ngỡ mình hiểu và biết cách sử dụng rồi nhưng trên thực tế, vẫn có nhiều cú trượt dài đau điếng…

    11 tháng trước

  • Phong cách Point-Free trong JavaScript
    • javascript
    • node.js

    Phong cách Point-Free trong JavaScript

    Lần đầu tiếp xúc với phong cách này, tôi khá là bối rối. toJSON, handleResult, handleError ở đây là gì? Nó là một hàm vậy thì tham số của nó đâu rồi? Tại sao nó có thể chạy được khi mà không cần kết thúc bằng () để gọi hàm chứ? Hay chí ít là, tham số đầu vào của nó đâu?... Chà, hàng tá câu hỏi hiện ra trong đầu tôi, nhưng lúc đó không có ai để giải thích cho mình hiểu. Cái gì gặp nhiều ắt sẽ quen, tôi bắt chước theo phong cách đó và ngầm hiểu "À thì ra mình cứ viết theo như vậy, nó sẽ chạy". Mãi sau này...

    1 năm trước

  • Một số cách để viết mã dễ đọc hơn trong JavaScript/Node.js
    • javascript
    • node.js

    Một số cách để viết mã dễ đọc hơn trong JavaScript/Node.js

    Điều mà tôi tin rằng rất nhiều lập trình viên mong muốn tiến tới là việc viết mã sao cho dễ đọc dễ hiểu. Bằng chứng là có rất nhiều Design Pattern được đưa ra để hướng dẫn mọi người giải quyết vấn đề theo cách mà nhiều người vẫn làm. Nhưng đó chưa phải là tất cả, việc viết mã hoàn chỉnh thì lại phụ thuộc vào từng lập trình viên. Chúng ta có nhiều công cụ hỗ trợ soạn thảo mã nguồn theo nhiều cách. Như định dạng, màu sắc, giao diện hiển thị, công cụ hỗ trợ gỡ lỗi... thoải mái lựa chọn theo sở thích hoặc cùng làm việc nhóm. Bên cạnh đó, vẫn có những quy tắc được đặt ra để các thành viên tham gia phát triển phải tuân theo.

    1 năm trước

  • Từ Callback, Promise đến Async/Await trong xử lý bất đồng bộ của JavaScript/Node.js
    • javascript
    • node.js

    Từ Callback, Promise đến Async/Await trong xử lý bất đồng bộ của JavaScript/Node.js

    JavaScript đã xuất hiện lần đầu tiên cách đây gần 30 năm về trước, là một ngôn ngữ lập trình mới thời đó, chắc hẳn phải trải qua một thời gian nữa thì nó mới thực sự ổn định và được sử dụng rộng rãi. Cho đến bây giờ thì chúng ta không thể phủ nhận được sự thành công của JavaScript, nó xuất hiện ở khắp mọi nơi trong thế giới web. Hơn thế, nó còn "thoát" mình ra khỏi trình duyệt để làm được nhiều điều hơn nữa. Một sản phẩm của công nghệ thì không thể nào ngừng phát triển. Trải qua rất nhiều năm, JavaScript liên tục lột xác và mang lại nhiều tính năng hữu ích hơn...

    1 năm trước

  • Prototypes trong JavaScript là gì? Tại sao nó lại quan trọng?
    • javascript

    Prototypes trong JavaScript là gì? Tại sao nó lại quan trọng?

    Nếu đã quen với một ngôn ngữ lập trình hướng đối tượng từ trước, class là cú pháp rõ ràng nhất để nhận biết cách khai báo một đối tượng mới. JavaScript cũng được coi là một ngôn ngữ lập trình hướng đối tượng, nhưng nếu là một lập trình viên JS đời đầu, cỡ cách đây khoảng chục năm về trước thì JavaScript không hề có cú pháp class, thay vào đó nó hỗ trợ kế thừa thông qua prototype. Cách viết này có phần khác biệt với cú pháp của OOP trong đa số ngôn ngữ lập trình hướng đối tượng, nó cũng không được đánh giá cao về khả năng hỗ trợ nhiều tính năng mạnh mẽ của OOP. Vài năm trở lại đây, ES6 ra đời mang đến từ khóa class...

    1 năm trước

  • Lập trình bất đồng bộ là gì? Tại sao JavaScript là ngôn ngữ lập trình bất đồng bộ?
    • javascript
    • other

    Lập trình bất đồng bộ là gì? Tại sao JavaScript là ngôn ngữ lập trình bất đồng bộ?

    JavaScript là một ngôn ngữ lập trình bất đồng bộ - điều đó ai mà chẳng biết chứ. Hoạt động bất đồng bộ thể hiện rõ nhất qua các hàm bất đồng bộ, tức là các hàm không trả lại kết quả ngay lập tức mà nó sẽ trả về trong một thời điểm "nào đó". Nếu xuất thân từ một lập trình viên PHP, Go hay thậm chí là Java... có thể bạn chưa nghe hoặc đang còn mơ hồ về khái niệm lập trình bất đồng bộ là như thế nào. Có thể bạn sẽ đặt ra ra câu hỏi là tại sao JavaScript lại là ngôn ngữ bất đồng bộ, liệu nó mang lại lợi ích hay hạn chế gì cho ngôn ngữ này. Bài viết ngày hôm nay, tôi sẽ phân tích về việc tại sao JavaScript lại là ngôn ngữ bất đồng bộ. Hay nói cách khác là vì sao nó "nên" là ngôn ngữ lập trình bất đồng bộ...

    1 năm trước

  • debounce, throttle và once - ba hàm thêm cách giải quyết logic người dùng!
    • javascript
    • node.js

    debounce, throttle và once - ba hàm thêm cách giải quyết logic người dùng!

    Tìm ra cách giải quyết vấn đề là một trong những kỹ năng hết sức quan trọng đối với lập trình viên. Thông thường, khi chúng ta làm càng nhiều thì kinh nghiệm càng lên cao. Lúc này đối mặt với những bài toán tương tự mà có thể nhanh chóng tìm ra hướng giải quyết. Có nhiều cách để học hỏi kinh nghiệm, một trong số đó là chịu khó tìm kiếm và đọc nhiều bài viết, tài liệu trên mạng. Nhiều khi kiến thức ta thu nạp được chưa cần thiết ngay lúc này, nhưng đến một lúc nào đó nó có thể phát huy tác dụng. Hoặc ít ra, đọc để trong đầu ta tự thốt lên: "À hóa ra với trường hợp này thì chúng ta nên xử lý thế này..."...

    1 năm trước

  • Higher-order functions (HOF) là gì? Lợi ích mà nó mang lại khi sử dụng trong dự án của bạn.
    • javascript

    Higher-order functions (HOF) là gì? Lợi ích mà nó mang lại khi sử dụng trong dự án của bạn.

    Nhớ lại trước đây, khi tôi đọc được bài viết về Higher-order functions thì nó đã gây ra một sự hoang mang nhất định. Do là mới vào nghề, kinh nghiệm chưa có nên đọc lý thuyết khá là khó hiểu. Hồi đó thì cũng đọc cho biết chứ chưa hình dung được tính ứng dụng gì nhiều. Mãi sau mới ngớ ra - ớ cái này xưa nay mình vẫn đang dùng thường xuyên mà! Bài viết về Higher-order functions thì cũng rất là nhiều trên mạng rồi, bạn đọc chỉ cần tìm trên Google là thấy. Tuy nhiên, vì HOF là một khái niệm quan trọng và có tính ứng dụng cao nên tôi xin phép được viết một bài theo quan điểm cá nhân. Không nói nhiều nữa, bắt đầu thôi...

    1 năm trước