🏋 Top Posts

👉 End-to-end là gì? Không phải ứng dụng nào cũng bảo mật dữ liệu giống nhau?

End-to-end là gì? Thông tin là sức mạnh. Và những gì chúng ta trao đổi hằng ngày qua những ứng dụng như Piepme, zalo, facebook... đều có những giá trị to lớn, cho dù đó chỉ là những dòng chat của mỗi cá nhân. Nhưng nếu bạn là một doanh nghiệp thì đó lại là vấn đề lớn để quan tâm đến việc bảo mật nội dung tin nhắn hay dữ liệu tổ chức or cá nhân.

👉 Top-level await

Top-level await cho phép developers sử dụng await mà không cần phải khai báo async function. Và nó hoạt động như một async function. Nhưng hãy chú ý khi sử dụng top-level await, vì nó đang ở Status: Stage 3.

👉 Authenticate Firebase với custom token

Trong phần mở bài tôi sẽ nói luôn, vì tôi sợ mất thời gian của các bạn khi click vào để đọc bài viết. Việc xác xác thực thông qua custom token là ở trường hợp hệ thống của của không xác thực qua những hình thức third party như (facebook, github, google mail...). Nếu bạn không thuộc trường hợp này stop tại đây và bạn đọc thêm về những lợi ích khi sử dụng firebase như hosting, notification, app index, storage, authentication, cloud mesenger, test lab

🏋 New Posts

👉 ES2023 hay ES14 đã có rồi, học nhanh thôi nào anh em

ES6 được đề xuất vào năm 2015. Theo logic này thì , ES2023 hay ECMAScript 2023 nên được gọi là ES14 cho nó chuẩn. Tháng 6 năm 2023 sẽ chính thức phát hành những tính năng mà đáng ra nó phải cho ra lâu rồi mới đúng.

👉 Tôi đã thiết kế một dự án giống SHOPEE dành cho những bạn sẵn sàng cho tương lai. Chức năng như sau.

Hầu hết mọi người không chuẩn bị nhiều cho tương lai, nhưng kết quả của việc chuẩn bị và không chuẩn bị sẽ rất khác nhau. Tin tôi đi... Bời vì khi 40 tuổi tôi mới nhận ra mình đã mất thời gian để mài VŨ KHÍ như thế nào?

👉 10 lỗi JavaScript phổ biến - Uncaught TypeError: Cannot read property

Error là một phần cốt lõi của việc học và sử dụng bất kỳ ngôn ngữ lập trình nào. Đây là top 10 error khi lập trình được thống kê và fix nhiều nhất. Thông báo của một error giúp bạn hiểu điều gì đã sai ở đâu đó trong code của chúng ta.

👉 Xóa giá trị Null hoặc Undefined từ một Object trong Javascript

Remove Null or Undefined Values from Object in Javascript - Đôi lúc ta muốn xóa dữ liệu bẩn bao gồm null or undefined trong dữ liệu trả về thì có thể sử dụng Object.keys() để xử lý đơn giản như sau.

👉 GPT-4: Hướng dẫn sử dụng MIỄN PHÍ không giới hạn và không cần ĐĂNG KÝ

Chat GPT-3 đã qua. Giờ chúng ta tập trung cho GPT-4. Tôi biết giờ dây đăng ký GPT3 đã khó huống hồ gì GPT-4. Chính vì vậy bài viết này dành cho những bạn nào đang có những lý do sau đây.

👉 Triển khai xác thực Facebook and Google sử dụng passport trong Node.js

Đăng nhập một hệ thống có thể dựa vào nhiều bên thứ ba như Facebook và Google ưu điểm nhanh gọn, thông tin chính xác nhưng tích hợp thế nào khi chúng ta đang sử dụng Node.js

👉 Hệ thống eventloop trong Node.js: Cách hoạt động và cách sử dụng với lời giải thích cặn kẽ.

Eventloop là một phần quan trọng của hệ thống runtime của Node.js, nó liên quan đến callback, thread nhưng để hiểu khái niệm này không đơn giản. Bài viết này phân tích rất kỹ về vấn đề này.

👉 Fixed window rate limiting Node.js

Fixed window là một thuật toán được sử dụng để hạn chế số lần gọi một hàm hoặc thủ tục trong một khoảng thời gian cố định. Điều này có thể được sử dụng để tránh tình trạng quá tải hệ thống hoặc giảm bớt số lần gọi hàm hoặc thủ tục không cần thiết.

👉 How to connect socket.io with node.js use MVC model?

To connect Socket.IO with Node.js using the MVC model, you can follow these steps: 1 - Install the Socket.IO and Express.js packages using npm

👉 Node.js 19 đã phát hành các lập trình viên sẽ chú ý những tính năng nào?

Node.js gần đây đã công bố phát hành phiên bản 19. Phiên bản này có các tính năng mà những lập trình viên phải chú ý như sau đó là node --watch, KeepAlive, WebCrypto. Và đây là cách sử dụng.

👉 Vì sao TOKEN (jwt) lại thay thế SESSION, xem 3 cách giải thích sau.

Video sẽ đưa ra 3 vấn đề cho thấy cách hoạt động của Session có vấn đề (Nếu Anh Chị là dev từ lv1 trở lên thì xem video là hay nhất, còn nếu từ level 0 đến lv1 chưa lo về tiền lương cho lắm thì cứ đọc tóm tắt này là được. Tôi cố gắng làm cả hai.)

👉 Series RabbitMQ Message Queue với NodeJs đầy đủ cho bạn muốn bắt đầu và đi sâu hơn.

Về RabbitMQ, thì tôi đã được tiếp xúc với công nghệ này từ nhiều năm trước, và tôi cũng muốn chia sẻ những điều mình đạt được trong hơn 10 năm làm nghề.

👉 Mysql thiết kế model Products trong eCommerce thế nào? Làm sao giống Mongodb

Thiết kế hệ thống eCommerce trong mysql như thế nào để đơn giản những câu query như chúng ta thiết kế ở bài trước của Mongodb. Đó là vấn đề chúng ta sẽ tìm hiểu trong bài viết này.

👉 Giải thích Cookie và Session giống và khác nhau? Câu hỏi phỏng vấn Nodejs | Fresher và Junior Tập 1 |

Câu hỏi phỏng vấn Nodejs - phân biệt Cookie và Session. Trước tiên hãy xem xét sự giống nhau của Cookie và Session là được sử dụng để theo dõi và xác định danh tính của người dùng.

👉 Mongodb: Group vs sum - Tự học Database

Tự học Mongodb - Bài này giúp các anh chị hiểu về cách sử dụng Group và Sum để có thể làm thống kê trong database.

👉 Mysql tìm hiểu về sự khác biệt giữa varchar và char là gì?

Học mysql phải để ý điểm chung của varchar và char chính là hai kiểu dữ liệu trong MySQL được sử dụng để lưu trữ các String. Và sự khác biệt giữa varchar và char chính là dộ dài sử dụng, khi nào nên sử dụng varchar và khi nào char.

👉 Redis là gì? Không đơn giản là đọc cache, 4 tình huống sau cho thấy bạn hiểu redis tới đâu?

Redis được biết đến là một database được lưu trữ trong memory được sử dụng để triển khai livestream, message queue, cache, và lưu trữ dữ liệu nếu muốn.

👉 Blue green deployment là gì? Câu chuyện thú vị của 2 backends khi triển khai hệ thống eCommerce.

Blue green deployment là gì? Và nếu bạn muốn tiết kiệm tiền nhất có thể khi triển khai và cơ sở hạ tầng cho một web application với 150 nghìn lượt truy cập hàng tháng thì có lẽ bạn nên biết về Blue green.

👉 Lộ trình Backend Developer không nên bỏ qua Series Con đường trở thành kiến trúc sư

Lộ trình Backend không hề đơn giản nhưng không phải vì thế mà bỏ cuộc, chính vì vậy bài viết này đưa ra 7 hình ảnh các bạn có thể hiểu được các hệ thống lớn triển khai như thế nào? Một bài viết giúp các bạn rút ngắn thời gian học backend

👉 Facade Pattern là gì? Vì sao các kỹ sư CẤP CAO thích sử dụng đến thế.

Facade Pattern giúp các hệ thống vận hành trơn tru và đơn giản hơn ví dụ như Shopee, việc tính toán diễn ra như thế nào chúng ta không cần biết, người mua chỉ biết chọn hàng và xem giá.

👉 Observer pattern - từ tín hiệu giao thông đến game DOTA2 đình đám - Độ khó 3 sao, độ phổ biến 5 sao - Series Design Patterns

Observer pattern chính là "super pattern" của design pattern, với pattern này thì nhiều ứng dụng sử dụng có thể thấy khắp nơi từ cuộc sống đến phần mềm, và trong bài viết này chúng ta tiếp tục tìm hiểu về Observer pattern.

👉 Cách lập trình phát hiện Thí sinh mở tab browser khác trong khi thi Online

Với đại dịch covid19 thì hầu như nền giáo dục đã chuyển đổi qua thi Online trên nhiều nền tảng đặc biệt là website. Nhưng còn có nhiều lỗ hổng để các thí sinh lợi dụng như switch tab để tra cứu bài thi, thì những lập trình viên sẽ giải quyết như thế nào?

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

👉 Đến ngày Black friday tôi đã sử dụng Stratery Pattern js hiệu quả như thế nào? Ecommerce Aliconcon - Series Design Pattern

Mục đích của bài này giúp các bạn có thể hiểu được về **Stratery parttern js là gì?**, sử dụng trong những tình huống nào? Và dùng **Stratery parttern** như thế nào?

👉 API là gì? Giải thích cho vợ nên không thể dài dòng - Top câu hỏi phỏng vấn backend

API là gì? Đọc đầy đủ là (Application Programming Interface) một khái niệm hầu như developers nào cũng phải hiểu, nhưng để giải thích thì chỉ cần ngắn gọn, không rườm rà, vì để dành thời gian cho những khái niệm phức tạp hơn.

👉 Bun js là gì? Liệu có thể giết chết nodejs và deno? Xem bằng chứng

Bun js là một phần bổ sung cho những nhà phát triển javascript. Bun giống như Deno, hỗ trợ Typescript cung cấp những tính năng thân thiện cho các lập trình cao cấp. Tuy nhiên không giống như Deno, Bun js được thiết kế thay thế cho Node, Webpack, Babel tất cả trong package.

👉 Replay attacks và spoofing Api nếu bạn là một backend thì bạn xử thế nào?

Replay attack là tấn công api theo kiểu gửi lại nguyên vẹn endpoint đã thực hiện trước đó bao gồm hacker và chính người dùng. Spoofing attack chính là tạo ra chữ ký để đánh lừa endpoint trong api.

👉 Làm rõ thuật toán tính lượt views của một bài viết hay video trên youtube và tôi sẽ thuyết phục được bạn?

Cách tính toán lượt views như thế nào? Đó là một trong những câu hỏi mà đã được chọn lọc trong nhiều câu hỏi trong tuần này. Vì đây là thuật toán được nhiều anh em quan tâm, nên tôi làm kỹ vấn đề này.

👉 Regex số điện thoại Việt Nam

Regex phone number vietnam. Chỉ với một số dòng lệnh sau, chúng ta có thể check number phone Việt Nam một cách chính xác và nhanh chóng.

👉 Đôi lúc git pull và push đều vô nghĩa với những trường hợp phổ biến trong team tôi

Hiểu rõ về git có lẽ giờ đây là điều bắt buộc đối với các developers hiện nay. Nhưng hình như đa số anh em chỉ biết mỗi push, pull, merge, rebase và một số thao tác cơ bản khác. Đến khi gặp những tình huống dưới đây mới cảm thấy thiếu hụt về kinh nghiệm sử dụng git.

👉 Git Rebase vs Git Merge và cuộc tranh cãi không có hồi kết - Đàm đạo về Git

Git rebase và merge đều có chung một nhiệm vụ đó là hợp nhất các branch (nhánh) lại với nhau, nhưng có một sự khác biệt rõ ràng đó chính là lịch sử các commit sau khi bạn hợp nhất nhánh này đến nhánh khác.

👉 Api là gì? Lần đầu tiên Reddit phải treo trưởng vì câu trả lời quá xuất sắc.

Api là gì? Câu hỏi được đăng lên Reddit nhưng có lẽ ít ai thấy một phần thưởng Starry Award dành cho người trả lời hay nhất. Những ai phỏng vấn chỉ cần trả lời ngắn gọn và 10 điểm về chỗ.

👉 Shopping carts in Redis vì sao và cách triển khai như amazon store

Giỏ hàng hay Shopping carts là một chức năng mà bất kỳ application thương mại điện tử nào cũng sẽ sử dụng hay nói cách khác là không thể thiếu cho người dùng. Vì sao? và dùng redis như thế nào tất cả sẽ có trong nội dung này.

👉 Firebase chats và cách tổ chức dữ liệu members, messages và bảo mật thông tin chats | Rules Firebase

Giả sử bạn có một ứng dụng trò chuyện mà bạn muốn kích hoạt cuộc trò chuyện riêng tư giữa một nhóm người được chọn or cá nhân và có thể hơn nữa là chia sẻ hình ảnh, video

👉 Các phương pháp hay nhất cho Git trong nhóm - Cách sử dụng Git Flow đúng cách

Là một lập trình viên mới tham gia vào một công ty mới, thì việc code không bàn tới, nhưng cách làm việc nhóm trên git cũng là một điều quan trọng không hề kém. Nếu như bạn không hiểu câu chuyện về sử dụng Git Flow trong một Team

👉 Nếu sử dụng Mongoose để lưu Products thì đây là cách chuẩn nhất cho app TMĐT | DESIGNING AN E-COMMERCE WEBSITE ALICONCON #3

DESIGNING AN E-COMMERCE WEBSITE - Ở bài trước chúng ta đã gửi OTP cho mỗi khách hàng đăng ký thành viên trong ứng dụng aliconcon. Giờ đây chúng ta sẽ phân tích về thiết kế cho Products, Orders và Inventories.

👉 Ứng dụng thương mại ALICONCON đã send OTP cho USER Signup bằng cách này? Part 3

Send OTP đến người dùng là một cách không mới trong những năm gần đây. Nhưng kiến trúc và bảo mật của nó thế nào thì mỗi hệ thống đều có cách triển khai riêng. Chắc chắn rằng không có một hệ thống nào hoàn hảo và bảo mật tuyệt đối.

👉 Mongoose - Statics methods virtual và middleware là gì? Và khi nào nên sử dụng? DESIGNING AN E-COMMERCE WEBSITE ALICONCON

Mongoose statics vs methods chắc hẳn những ai bước vào tìm hiểu NoSQL cụ thể là Mongodb thì đã từng nghe qua về hai khái niệm đó. Và hơn nữa đó là virtual và middleware trong mongoose.

👉 Redis - Các kiểu dữ liệu phổ biến và kịch bản ứng dụng vào cuộc sống phần mềm

Chúng ta đều biết rằng Redis cung cấp vô số kiểu dữ liệu, có 5 kiểu phổ biến là String (chuỗi), Hash (băm), List (danh sách), Set (tập hợp), Zset (tập hợp có thứ tự). Với việc cập nhật phiên bản Redis mỗi ngày tinh vi hơn, thì có 4 kiểu dữ liệu được hỗ trợ thêm đó là

👉 AB Benchmarking Tool - Bài test cuối cùng sau khi triển khai Rest API

AB Benchmarking - Giả sử ta muốn test mô phỏng cho 100 users truy cập cùng một lúc để lấy Voucher trong Shopee. Vì thói quen của users là muốn có nhanh cho nên họ sẽ refresh page liên tục, ta cho là 50 lần. Như vậy ta có 100 người truy cập và tổng số lượng 100 * 50 = 5000 request