Backend

Lore: Epic Games mở mã nguồn VCS sinh ra để thay Git ở thế giới binary khổng lồ

Lore: Epic Games mở mã nguồn VCS sinh ra để thay Git ở thế giới binary khổng lồ

Repo game không giống repo web. Trong engine cỡ Unreal, phần lớn dung lượng là asset binary: texture, mesh, world partition nặng hàng trăm MB đến vài GB, đổi liên tục bởi cả nghìn artist lẫn developer. Đẩy vào Git là chuỗi ngày đau khổ: Git LFS là thứ bolt-on, artist export texture 2 GB là cả pipeline kéo full file, dedup binary bị giới hạn bởi pack-delta heuristic, partial clone cộng sparse checkout còn experimental, mất mạng là fail.

Đọc thêm
Thiết kế hệ thống thực chiến: Sự bình dị của những kiến trúc vận hành trơn tru

Thiết kế hệ thống thực chiến: Sự bình dị của những kiến trúc vận hành trơn tru

Nhiều kỹ sư mới vào nghề thường lầm tưởng rằng một thiết kế hệ thống (System Design) ấn tượng phải là một mạng lưới chằng chịt các microservices, sử dụng Apache Kafka để stream event, áp dụng pattern CQRS phức tạp và chạy distributed consensus khắp nơi.

Đọc thêm
Những lời dối lòng khi chúng ta cố bám trụ với Golang

Những lời dối lòng khi chúng ta cố bám trụ với Golang

Trong cộng đồng lập trình Backend, Golang (Go) luôn được xưng tụng như một vị vua của sự tối giản. Từ các microservices tại Google, Uber, Grab cho đến các công cụ hạ tầng cốt lõi như Docker, Kubernetes, Terraform - Go gần như hiện diện ở khắp mọi nơi. Chúng ta truyền tai nhau những luận điểm quen thuộc: “Go đơn giản dễ học”, “Concurrency trong Go siêu nhẹ nhờ Goroutine”, “Toolchain của Go biên dịch cực nhanh và chỉ ra 1 file binary duy nhất”.

Đọc thêm
Golang tắt Nagle's Algorithm mặc định: Cú lừa hiệu năng trên mạng chập chờn

Golang tắt Nagle's Algorithm mặc định: Cú lừa hiệu năng trên mạng chập chờn

Chào các bạn, hôm nay mình muốn chia sẻ với các bạn một câu chuyện dở khóc dở cười mà mình và nhiều anh em làm hệ thống đã từng nếm trải.

Đọc thêm
API Filtering: gọi dữ liệu như dân sành cà phê

API Filtering: gọi dữ liệu như dân sành cà phê

Năm đầu đi làm, mình từng viết một endpoint GET /api/menus trả về… toàn bộ menu. 200 items mỗi lần gọi. JSON nặng 1.2MB. Frontend chỉ cần tên + giá của 10 món đang active. Mình nhớ câu đầu tiên anh lead nói: “Mày đang gửi cả cái kho hàng cho người ta chỉ cần xem menu đấy à?”

Đọc thêm