Trước tiên, hãy cố gắng tìm một định dạng đủ gần với những gì bạn sắp xây dựng. Nói chung, tốt hơn là sử dụng định dạng của ai đó hơn là phát minh ra định dạng của riêng bạn, ngay cả khi định dạng có vẻ phức tạp hơn một chút so với định dạng bạn cần 1 .
Nếu bạn không thể tìm thấy một định dạng sẵn sàng phù hợp, hãy xem liệu bạn có thể tự xây dựng trên định dạng mục đích chung hiện có, chẳng hạn như XML hoặc XML nhị phân . Điều này có thể có trong hầu hết các trường hợp khi bạn chuẩn bị bắt đầu một định dạng tệp mới. XML dựa trên văn bản chiếm nhiều không gian hơn, nhưng cung cấp cho con người một số biện pháp dễ đọc. Tuy nhiên, nếu bạn thấy mình sử dụng mã hóa Base-64 bên trong tệp XML, đó là một dấu hiệu rõ ràng rằng bạn nên sử dụng mã hóa nhị phân thay thế.
Theo như các thực tiễn tốt và xấu, hãy đảm bảo rằng bạn không "nướng" tính năng phần cứng của nền tảng đích ban đầu vào thiết kế định dạng tệp của bạn. Cụ thể, hãy chắc chắn rằng con số của bạn được lưu trữ trong một định dạng mà có thể được đọc một cách chính xác trên nền tảng với endianness đó là khác biệt so với các nhà văn, và rằng chuỗi diện người dùng của bạn được lưu trữ trong UNICODE.
Một thực hành tốt khác là bao gồm một tiêu đề mà từ đó có thể xác định loại tệp của bạn trong trường hợp phần mở rộng của nó bị thiếu hoặc không chính xác. Đó là một ý tưởng tốt để bao gồm một phiên bản định dạng tệp của bạn trong tiêu đề. Điều này sẽ cho phép bạn thay đổi định dạng sau và tương thích ngược.
Nếu có thể, đừng làm cho định dạng của bạn phụ thuộc vào các chi tiết cụ thể của cơ chế tuần tự hóa mặc định được tích hợp trong nền tảng của bạn. Ví dụ, các đối tượng Java được tuần tự hóa nhị phân không tạo ra định dạng tệp tốt 2 .
Cuối cùng, quyết định nếu các tập tin của bạn cần phải được streamable . Điều này giới thiệu sự phức tạp bổ sung, bởi vì người ta có thể giải thích các "khung" riêng lẻ của tệp của bạn. Tuy nhiên, trong trường hợp khi bạn cần khả năng truyền phát, bạn hầu như luôn có thể định vị một định dạng tệp phù hợp đã tồn tại.
1 Mặt khác, bạn nên tránh các định dạng đòi hỏi phải có những nỗ lực phi thường để hỗ trợ sự phức tạp mà ứng dụng của bạn yêu cầu.
2 Điều này không có nghĩa là, tuy nhiên, bạn không nên cố gắng để tùy chỉnh tích hợp đọc và viết các định dạng mới của bạn với chương trình tuần tự của nền tảng của bạn, chỉ là bạn không nên dựa vào các cơ chế mặc định của serialization.