2coffee.dev

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

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

    11 tháng trước

  • Cao cấp
    Hello

    Tôi & khao khát "chơi chữ"

    Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

    Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

    Xem tất 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…

    1 năm 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

  • Bên cạnh xử lý lỗi, tạo ra lỗi bằng đối tượng Error cũng không kém phần quan trọng
    • error
    • error handle

    Bên cạnh xử lý lỗi, tạo ra lỗi bằng đối tượng Error cũng không kém phần quan trọng

    Cách đây khá lâu tôi có một bài viết nói về Một số phương pháp xử lý lỗi (error handling) trong Node.js, nội dung trong bài xoay quanh việc làm thế nào để bắt được lỗi và xử lý chúng một cách dễ dàng. Trong bài viết này, tạm thời bỏ qua những phương pháp đó, chúng ta hãy đi sâu vào phân tích việc "đẩy" ra lỗi và làm sao để "bắt" được chúng. Tôi cá là có nhiều người, trong đó có cả tôi từng đẩy ra một lỗi trông giống như thế này...

    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