Primero, trate de encontrar un formato lo suficientemente cercano a lo que está a punto de construir. En general, es mejor usar el formato de alguien que inventar el suyo, incluso si el formato parece ser un poco más complejo de lo que necesita 1 .
Si no puede encontrar un formato listo para usar adecuado, vea si puede crear uno propio sobre un formato de propósito general existente, como XML o XML binario . Esto debería ser posible en casi todos los casos cuando esté a punto de comenzar un nuevo formato de archivo. El XML basado en texto ocupa más espacio, pero le da a los humanos cierta capacidad de lectura. Sin embargo, si se encuentra utilizando la codificación Base-64 dentro de un archivo XML, es una clara indicación de que debería haber utilizado una codificación binaria.
En cuanto a las buenas y malas prácticas, asegúrese de no "incorporar" la función de hardware de su plataforma de destino inicial en el diseño de su formato de archivo. Específicamente, asegúrese de que sus números estén almacenados en un formato que pueda leerse correctamente en plataformas con una capacidad de escritura diferente a la del escritor, y que sus cadenas orientadas al usuario estén almacenadas en UNICODE.
Otra buena práctica es incluir un encabezado desde el cual es posible determinar el tipo de su archivo en caso de que su extensión no esté o sea incorrecta. Es una buena idea incluir una versión de su formato de archivo en el encabezado. Esto le permitiría cambiar el formato más adelante y seguir siendo compatible con versiones anteriores.
Si es posible, no haga que su formato dependa de los detalles del mecanismo de serialización predeterminado integrado en su plataforma. Por ejemplo, los objetos Java binarios serializados no tienen un buen formato de archivo 2 .
Finalmente, decida si sus archivos deben ser transferibles . Esto introduce una complejidad adicional, porque uno debería ser capaz de interpretar "fotogramas" individuales de su archivo de forma aislada. Sin embargo, en los casos en que necesita capacidad de transmisión, casi siempre debería poder localizar un formato de archivo adecuado que ya exista.
1 Por otro lado, debe evitar los formatos que requieren esfuerzos extraordinarios para soportar la complejidad que requiere su aplicación.
2 Sin embargo, esto no significa que no deba intentar integrar de forma personalizada la lectura y escritura de su nuevo formato con el esquema de serialización de su plataforma, solo que no debe confiar en los mecanismos predeterminados de serialización.