nói dối e blog

Hai Lỗi

Hai lỗi “đáng nhớ đời” Hôm nay mình vừa phát hiện hai lỗi hệ thống đều thuộc dạng kinh điển, đáng ghi vào “sổ tay phòng tránh sự cố”. Xin chia sẻ lại để đồng nghiệp cảnh giác.

Lỗi đầu tiên liên quan đến cơ chế lưu trữ dữ liệu của server biên tập. Chúng ta sử dụng phương pháp ghi dồn tiếp vào file dữ liệu để đảm bảo không mất mát thông tin, đồng thời xây dựng file index riêng để đánh dấu vị trí offset của phiên bản dữ liệu mới nhất trong file chính, giúp tăng tốc độ tra cứu. Vấn đề nằm ở việc khi thiết kế, mặc dù đã lường trước khả năng file dữ liệu vượt ngưỡng 4GB, nhưng do sơ suất đã dùng kiểu dữ liệu 32bit thay vì 64bit để lưu offset. Sau thời gian dài vận hành, hiện tượng tràn số nguyên终于 xảy ra khiến file index bị hỏng hoàn toàn. Dù hệ quả không quá nghiêm trọng (chỉ cần rebuild lại index), nhưng đây là bài học lớn về việc xem nhẹ việc quy hoạch không gian lưu trữ.

Tại Sao Không Nên Viết Các Chương Trình Lớn

Tại Sao Nên Tránh Viết Chương Trình Cồng Kềnh

Trong cuốn “Nghệ Thuật Lập Trình Unix”, triết lý Unix được tóm lược bởi nguyên tắc: “Nếu không phải là giải pháp duy nhất, hãy tránh viết chương trình cồng kềnh”. Chương 13 của sách - mang tên “Độ Phức Tạp: Đơn Giản Đến Mức Tối Ưu Nhưng Không Thiếu Sót” - dành riêng để phân tích sâu sắc về vấn đề này.

Toán Học Trong Thế Bài

Khi kết thúc giai đoạn thử nghiệm khép kín trò chơi Đối Quyết Bài Ma, đội ngũ thiết kế đã quyết định tặng mỗi tài khoản một lá bài đặc biệt gọi là Khai Thiên Lập Địa để tri ân những người chơi tiên phong. Trong thế giới bài ma, quy tắc cơ bản là mỗi người chọn 50 lá bài yêu thích mang vào trận, hệ thống sẽ trộn ngẫu nhiên. Mỗi lượt chơi, mỗi người rút 1 lá từ bộ bài của mình, và trước khi bắt đầu ván, tất cả đều được chia 5 lá bài đầu tiên.

Xây Dựng Môi Trường an Toàn Cho Plugin Lua

Hệ thống plugin tùy chỉnh do Blizzard mở ra đã trở thành một yếu tố then chốt trong thành công của World of Warcraft. So với các tựa game trực tuyến tại Trung Quốc hay Hàn Quốc, hiện chưa có sản phẩm nào đạt được mức độ tự do trong tùy biến giao diện người dùng như hệ thống này.

Ban đầu Blizzard chỉ định tạo ra giao diện tùy chỉnh cho người dùng và bên thứ ba. Nhưng dần dần hệ thống plugin dựa trên XML và Lua đã vượt ra khỏi khuôn khổ giao diện, trở thành công cụ phát triển đa năng.

Bổ Sung Thêm Về Quản Lý Tài Nguyên Trong Game

Gần đây, qua thực tiễn, tôi đã xác nhận được một số suy nghĩ trước đây của mình về quản lý tài nguyên. Luôn là niềm vui khi phát hiện ra những giả định của bản thân là chính xác.

Tổng quan lại những bài viết trước đây:
Quản lý bộ nhớ tài nguyên và tiền tải đa luồng
Đây không phải là ý tưởng đầu tiên tôi nhen nhóm, nhưng là bài viết đầu tiên tôi công khai trên blog và đưa vào thực hành. Một số nội dung trong đó, đặc biệt phần thiết kế đa luồng, sau này đã được thay thế vì quá phức tạp và không đáp ứng đủ yêu cầu. Một số chi tiết khó ổn định khi triển khai.

0%