🏋 Top Posts

👉 Design patterns là gì? Từ cuộc sống đến lập trình và cách học trong 1 tuần (mẹo) - Kèm tài liệu và source

Design patterns là gì? Design patterns chính là một gã khổng lồ, nếu bạn đứng được trên vai thì bạn sẽ nhìn xa hơn. Làm sao bạn đứng được trên vai hãy theo cách của bài viết này, từ CUỘC SỐNG đến PHẦN MỀM.

👉 Tối ưu hoá hệ thống với 4 tầng (Giải thích chi tiết)

Và khi đến giờ G thì trang của chúng tôi không thể load. Sự việc khiến team của chúng tôi cảm thấy thất vọng, nhưng ngay sau đó My team bắt tay vào việc tối ưu hoá hệ thống này. Và sau 3 ngày

👉 Kiểm soát đồng thời trong lập trình

Có một bạn gửi câu hỏi về bằng một hình ảnh, và tôi không bất ngờ lắm với tình huống trên. Với một 1 triệu url thì nếu sử dụng for loop như bình thường là không thể. Và tôi đã gặp và có giải pháp nay chia sẻ cho các bạn.

🏋 New Posts

👉 Bạn có biết có đến 38 programming languages từ 1949 đến nay và bạn biết bao nhiêu?

Mỗi năm mỗi khác, người đến kẻ đi, và programming languages cũng vậy đến rồi đi hoặc làm bàn đạp cho môn phái lập trình khác. Một số languages thì bất tử theo thời gian.

👉 Hướng dẫn xây dựng Rest API cho thương mại điện tử như thế nào với hàng triệu đơn hàng mỗi ngày - Series Rest Api - FullStack

Hiện nay các ứng dụng thương mại điện tử (TMĐT hay ecommerce) được các nhà lập trình phát triển một cách xuất sắc từ quản lý đơn hàng cho đến chịu tải với hiệu suất cao, tính nhất quán dữ liệu trong khi sử dụng Microservices... Đó là những yếu tố tạo nên một hệ thống bền vững cho các app như Shopee, lazada, alibaba, alimama, và aliconcon.

👉 Học Javascript - Object javascript - Triển khai flatten trong Object

Flatten JavaScript object chính là biến hóa keys và values trong Object đó trở thành một Object có chiều sâu hay còn gọi là deep Object. Ngoài đệ quy thì chúng ta còn cách sau.

👉 Bucket Pattern Mongodb - Một mô hình paging (phân trang) rất hiệu quả nhưng khi nào nên sử dụng?

Với việc sử dụng Bucket Pattern thì chúng ta sẽ tiết kiệm được thời gian khi truy vấn dữ liệu cấp triệu. Đây là một mô hình Group rất hiệu quả khi phân trang nhưng vẫn còn có những nhược điểm cho nên bạn nên cân nhắc khi sử dụng mô hình này.

👉 findOneAndUpdate Mongoose rất quan trọng và khi nào nên sử dụng?

findOneAndUpdate mongoose là một hàm mà được sử dụng trong nhiều trường hợp. Trong Mongodb có nhiều functions để update một document như updateOne, nhưng đôi lúc chúng ta nên làm việc với một hoạt động mà lượng truy cập đồng thời cao, do đó findOneAndUpdate mongodb là một function nên quan tâm.

👉 3 cách phân trang trong databases thể hiện ở dự án stackoverflow, reddit, facebook và hack news

Pagination là một trong những thủ thuật để tối ưu hóa dữ liệu hàng đầu hiện nay. Facebook, reddit đã làm chúng ta mê mẩn đắm chìm trong thế giới của họ, mỗi lần lướt là một quá trình phân trang được thiết kế hoàn hảo. Trong bài này chúng ta sẽ tìm hiểu những thủ thuật đó trong Mongodb.

👉 Sử dụng Socket io trong mô hình MVC Express và Node.js theo 2 (video + source)

Mô hình MVC cho đến thời điểm này thì theo tôi vẫn giữ một vị trí đặc biệt, mặc dù đã có những pattern khác ra đời. MVC giúp chúng ta chia nhỏ modules mà dễ dàng quản lý, và socketio sẽ được tích hợp như thế nào?

👉 MongoDB schema design - One to One (1:1)

Một trong những người mới học về database, bất kể mongodb, mysql hay oracle thì việc xây dựng những lược đồ (schema) là một điều quan trọng. Nếu ngay từ đầu bạn làm tốt thì sau này mọi chuyển trở nên đơn giản cho những người đến sau hoặc hệ thống được nâng cấp.

👉 Node.js 18 mới ra mắt dev nên chú ý chức năng này?

Global fetch API hiện đã có phiên bản mới nhất của JavaScript runtime Node.js. Node.js 18 bao gồm bản cập nhật cho công cụ JavaScript V8, với tính năng fetch được bật theo mặc định và module test.

👉 Redis benchmark đánh giá hiệu suất và khả năng mở rộng của Redis

Redis benchmark là một kỹ thuật giúp những lập trình viên có thể có thể sử dụng để mô phỏng một số lượng khách hàng tùy ý kết nối cùng một lúc và thực hiện các hành động trên máy chủ, xác định được thời gian hoàn thành các nhiệm vụ.

👉 UUID thiếu sót trong lập trình, đối thủ đã phát hiện kinh doanh của chúng tôi [backend service]

UUID đã giúp đối thủ kinh doanh biết bí mật doanh thu của chúng tôi. Trong bài viết này, bạn sẽ nghe một mẩu chuyện có thật và hiểu hơn về UUID với Nodejs như thế nào?

👉 function declaration và function expression khác nhau điểm gì? Chưa khởi động mà rớt cái tạch.

rong javascript thì có nhiều cách khác nhau để tạo một function nhớ không nhầm thì có 8 cách tạo một function. Và trong số đó có ** function declaration và function expression**, vậy nó khác nhau điểm gì.

👉 Full text search Mongodb - Chỉ một bài viết không cần nhiều.

Đầu tiên chúng ta thống nhất với nhau là hiểu khái niệm Full text search là gì? này trước rồi mới tới việc thực hành. Full text search đơn giản chỉ là một hình thức nâng cao việc tìm kiếm dữ liệu trong database mà thôi.

👉 Compare date JavaScript - So sánh 2 ngày trong javascript

So sánh 2 ngày trong javascript, đây là một bài viết nhỏ nhỏ và để tôi kể cho các anh chị nghe một tình huống về một bạn cũng có exp 1 năm rồi, chú ý bài viết chỉ tips khắc phục không có ý định cười. Vì tôi cũng một thời như thế

👉 onload vs onerror trong javascript nên hiểu để làm việc với third-party

Onload vs onerror in javascript. Đôi khi chúng ta cũng phải cần sử dụng một resource của third-party như images, iframes... Như thế này

👉 Object.freeze() Object.seal() và Object.preventExtensions() cần hiểu rõ sự khác nhau trong Object Javascript

JavaScript cung cấp ba methods object sau đây để đáp ứng tất cả các trường hợp này một cách dễ dàng, và trong bài viết này chúng ta sẽ giải thích qua ví dụ cụ thể. Đó là 3 phương thức Object.freeze(), Object.preventExtension() và Object.seal()

👉 Connect with mongoose using async/await

Mongoose has two ways of connecting to a MongoDB database, connect() and createConnection(). You can use these within an async function as follows:

👉 StructuredClone là một tính năng deep-copying chúng ta đã chờ rất lâu.

StructuredClone là một tính năng cho phép những lập trình viên có thể sử dụng để deep-copying. Nhằm thay thế cho các phương pháp cũ như sử dụng object spread operator

👉 3 cách update phiên bản Nodejs mới nhất trên máy Mac

Nodejs đang tung ra phiên bản 17.0.1 có nhiều tính năng được cải tiến. Nếu ai đang sử dụng phiên bản nodejs và đang xài Mac thì nếu muốn upgrade lên thì có thể tham khảo 3 cách dưới đây.

👉 Social Sharing Links không thể thiếu cho developers

Nếu khách hàng của bạn mất thời gian khi phải mở facebook rồi post, xong rồi lại mở reddit rồi post, tiếp theo mở pinterest rồi post. Nó thật phiền phức và mất thời gian. Bạn là một người lập trình và bạn có thể giúp gì?

👉 Triển khai mô hình microservices và redis là phù hợp với nodejs

Redis là một giải pháp tuyệt vời để tạo các dịch vụ cơ sở hạ tầng như message queue và event stores, nhưng có một số điều bạn cần tính đến khi sử dụng kiến ​​trúc microservices để tạo hệ thống phân tán.

👉 Hướng dẫn upload file to Google Drive với Node.js (Kèm video)

Google Drive là một dịch vụ lưu trữ có sẵn cho người dùng Google và cho phép bạn lưu trữ tất cả các loại files. Google api cho phép developers thao tác với API để có thể tạo folders, upload file rất hữu ích như một số trường hợp làm dịch vụ lưu trữ.

👉 Tránh lưu trữ các mảng lớn và cách thay thế hiệu quả trong Mongodb

Một trong những quy tắc chung khi lập mô hình dữ liệu trong MongoDB là dữ liệu được truy cập cùng nhau phải được lưu trữ cùng nhau. Đó là điều quan tâm đầu tiên khi lập trình database.

👉 CÁCH MỚI - Add thuộc tính vào Object với điều kiện cho trước.

Một ví dụ cho bạn thấy đúng là JavaScript có nhiều tính năng mà chúng ta chưa phát hiện và sử dụng hằng ngày. Nó có thể rất mới những người bắt đầu học javascript nhưng tôi nghĩ cũng khá nhiều anh em không biết tính năng này trong đó có mình.

👉 Bao nhiêu năm giờ gói gọn học Elasticsearch nodejs trong một video

Elasticsearch không còn xa lại, một công cụ mạnh mẽ truy vấn dữ liệu. Dể hiểu vì sao các công ty tuyển dụng đều thêm điều kiện "Ưu tiên có kinh nghiệm làm việc với Elasticsearch". Tôi cam đoan bạn sẽ không phí tiền đóng NET để đọc bài viết này.

👉 Hiểu single thread Nodejs với 30 dòng code

Single thread Nodejs sẽ được chứng minh với chỉ 30 dòng code. Bạn sẽ không còn hiểu mập mờ về vấn đề này nữa, đó cũng là một câu hỏi mà nhiều bạn cũng đang thắc mắc.

👉 Công thức may mắn chính xác mỗi người

Sự may mắn của một người có thể được thể hiện bằng các công thức toán học, chứ không đơn thuần như nhiều người vẫn nghĩ là may mắn tự nhiên rớt xuống.

👉 Cách triển khai theo dõi mỗi request trong express js (kèm code)

Không cần phải giới thiệu về express js là gì? Bài học hôm nay bạn sẽ học được cách theo dõi log của một dự án khi sử dụng nodejs kết hợp với winston. Bạn có thể lấy code trên github về và xem xét áp dụng cho dự án của mình.

👉 5 lý do nên sử dụng GraphQL tại Công ty của bạn

GraphQL đang trỗi dậy trong thời gian gần đây và có lẽ là tương lai. Các công ty như Facebook, Netflix, Shopify hoặc PayPal đang sử dụng ngôn ngữ dữ liệu và công nghệ API để thúc đẩy sản phẩm của họ. Trong bài viết này, có 5 lý do vì sao họ lại thay đổi, tại sao công ty bạn lại không?

👉 Cách push notification khi lớn hơn 500 thiết bị với multicast

Khi sử dụng FCM (Firebase) với sendMulticast thì theo tài liệu chỉ có thể gửi một lúc giới hạn 500 tokens hay hiểu là 500 thiết bị một lúc. Mẹo nhỏ trong bài viết này hướng dẫn bạn có thể làm được nhiều hơn với 500 tokens.

👉 Cache penetration và cache breakdown - Bạn ở 1% còn lại hay là 99%

Ở phía backend thì ngoài tối ưu hóa việc triển khai code là ưu tiên hàng đầu, tiếp theo là về SQL, và sau đó chính là bộ nhớ đệm hay gọi là cache. Cache cũng có hai loại đó là Bộ nhớ cache cục bộ và Dịch vụ bộ nhớ đệm.

👉 Thảo luận về repaint reflow javascript (Dành cho level 3)

Repaint reflow là một khái niệm liên quan đến high-performance javascipt. Cũng chính vì điều này mà các thư viện như Vue, React và Reef đều triển khai theo các làm như vậy.

👉 Khi nào bạn bất khả chiến bại (CEO vs CTO)

Một bài báo mà tôi cho là đúng với tình hình hiện nay. Khi nào bạn sẽ bất khả chiến bại, có thể là viển vông nhưng hay xem họ nói gì trong nội dung bài viết này.

👉 Giải thích cơ chế theo dõi pixel cho vợ nghe (Có video)

Cách hoạt động của pixel theo dõi người dùng đang làm gì là một tính năng rất hiệu quả, nhanh gọn lẹ. Tôi thì nghe qúa nhiều về sự phàn nàn rằng, mọi thứ chúng tôi truy cập trên internet đều bị theo dõi với một pixel.

👉 Tìm hiểu về cleanObject trong 1 phút

Tình huống này xảy ra khá nhiều giữa backEnd và frontEnd khi gọi truy vấn thông qua API RESTful. Bởi vì quy định khi làm việc với `API RESTful` thì quan trọng phải giới hạn các trường trả về thông qua API, lý do là giảm thiểu lưu lượng mạng và tăng tốc độ sử dụng API của chính họ.

👉 Facebook đang ra mắt Horizon Workroom, phần mềm họp ảo Online

Horizon Workroom là một phần mềm họp Ảo online được phát triển bởi Facebook, nhằm xoá đi sự khô khan khi họp thông qua nền tảng Zoom, với VR headset (Virtual Reality)

👉 Sort array JavaScript và những phương pháp hàng đầu

Trong bài viết này, chúng ta sẽ xem các trường hợp sử dụng phổ biến nhất cho phương thức Array sort() và cách chúng ta có thể sử dụng tối đa sức mạnh của nó.

👉 Kiểm tra địa chỉ email có tồn tại, không nên chày cối với khách hàng?

Đa số nhiều trường hợp xảy ra giống nhau là đưa địa chỉ email thiếu hay thừa khiến người gửi mail send một cách mù quáng, và nội dung mail sẽ không bao giờ đến. Bạn có thể nghĩ đó là việc nhỏ, nhưng trong hệ thống sendMail nó là một vấn đề lớn.

👉 Triển khai nodejs và express nên nhớ có một bài học đừng quên

Request entity too large nodejs, vâng chính là lỗi đó Anh. Chúng ta bị chơi rồi, nhưng Bạn A cũng đã khắc phục xong nhanh chóng, sao nó đơn giản mà chúng ta lại bị bỏ qua nhỉ?

👉 Solid trong Javascript: Cách sử dụng nguyên tắc SOLID để thiết kế hệ thống có tính năng mở rộng

Solid là một khái niệm trong lập trình Javascript được sử dụng để thể hiện một hệ thống lập trình có tính năng đơn giản, dễ dàng quản lý và dễ dàng mở rộng. Solid được định nghĩa bởi các nguyên tắc SOLID, mỗi nguyên tắc đề cập đến một khía cạnh quan trọng của việc thiết kế hệ thống lập trình tốt.