Tác giả: DMN

Thiết kế hệ thống Pastebin: ước lượng tải, chống va chạm khoá, tách lưu trữ nội dung

Thiết kế hệ thống Pastebin: ước lượng tải, chống va chạm khoá, tách lưu trữ nội dung

Năm nguyên tắc rút ra từ một ticket bốn dòng — mỗi nguyên tắc neo vào một con số đo được. Mười lăm phút vào một cuộc họp thiết kế, sơ đồ trên bảng đã có sáu thành phần: một load balancer, một API gateway, một hàng đợi, một tầng cache và hai database nối mũi tên với nhau. Không ai trong phòng biết hệ thống này phải chịu bao nhiêu request mỗi giây. Con số đó quyết định gần như mọi thứ còn lại trên bảng. Luật tôi dùng rất đơn giản: mỗi thành phần trên sơ đồ phải chỉ ... »

Bí Mật Sau Những Ký Tự Lạ Trong API Response Của Big Tech

Bí Mật Sau Những Ký Tự Lạ Trong API Response Của Big Tech

Giới thiệu Bạn có bao giờ mở DevTools, bắt một API response từ Google hay Messenger, rồi ngạc nhiên khi thấy phần đầu của dữ liệu trông như thế này không? )]}'\n[{"id": 1, "name": "Alice"}, ...] Hoặc thậm chí là một vòng lặp while(1); hay for(;;); ngay trước khi JSON bắt đầu? Đây không phải bug. Đây là một kỹ thuật phòng thủ chủ động — được thiết kế để chống lại một lỗ hổng bảo mật có tên JSON Hijacking. Bài viết này sẽ giải thích từng bước cơ chế tấn công, ... »

Clustered Index và Non-clustered Index

Clustered Index và Non-clustered Index

Khi làm việc với database, nhiều lập trình viên gặp một tình huống quen thuộc: > “Cùng một câu SQL, nhưng MySQL và PostgreSQL lại trả về kết quả khác nhau?” Nguyên nhân không nằm ở SQL sai, mà nằm ở cách dữ liệu được lưu trữ bên dưới, cụ thể là: * Clustered Index * Physical order (thứ tự lưu vật lý) * Và việc sử dụng LIMIT không có ORDER BY Bài viết này sẽ giúp bạn: * Hiểu rõ Clustered Index & Non-clustered Index * Thấy được sự khác biệt giữa MySQL (InnoDB) và PostgreSQL * Rút ra bài h ... »

BMAD Method — Kỷ nguyên mới của Lập trình Agile được dẫn dắt bởi AI

BMAD Method — Kỷ nguyên mới của Lập trình Agile được dẫn dắt bởi AI

1. Vấn đề: Khi “vibe coding” không còn đủ AI đang thay đổi cách chúng ta viết phần mềm. Các mô hình ngôn ngữ lớn (LLM) như GPT, Claude, hay Gemini đã giúp lập trình viên đạt năng suất cao chưa từng có. Tuy nhiên, nhiều người vẫn đang làm việc theo kiểu “vibe coding” — một phong cách làm việc dựa trên cảm tính, trao đổi ngẫu hứng với AI trong chatbox, thiếu kế hoạch, thiếu cấu trúc. Kết quả là: * Mã nguồn khó mở rộng, * AI “quên” chi tiết quan trọng, * Dự án dễ rơi vào tình trạng demo ... »