2009-10-17 3 views
5

Скажем, я придумал какой-нибудь супер-пупер, представляющий некоторые данные, которые, по моему мнению, будут полезны другим людям, чтобы знать и использовать. Предположим, что у меня есть «спецификация» в той или иной форме, даже если она не может быть полностью формальной: т. Е. Я знаю, как этот формат файла будет работать уже.Если бы я хотел определить формат файла, как бы мне это сделать?

Как бы я тогда начал выпускать эту спецификацию, чтобы получить комментарии и отзывы на ее основе? Как я получу его «стандартизованным» в той или иной форме?

+0

Представленные данные в какой форме? Какие данные? Вы говорите об компрессии? – Nifle

+0

Двоичный. Зашифрованные данные. Не обязательно, хотя, возможно, в какой-то момент. –

+1

Опубликовать RFC. – Artelius

ответ

3

Задание форматов файлов затруднительно. Если данные, которые вы хотите сохранить, тривиальны, это имеет тенденцию быть тривиальным. В целом, однако, это не так. Вы можете использовать структуру RFC и ключевые слова, но я всегда считал задание файла в прозе медленным, трудным и скучным заданием, также потому, что чтение также сложно.

Мое предложение, если вы хотите следовать этому пути, - это сосредоточиться на блоках информации. Большая часть сложностей заключается в том, что для объектов, которые являются необязательными, и присутствуют только при наличии другого условия, поэтому попробуйте использовать это при разбиении ваших данных.

Лучшая спецификация, ИМХО, является настоящим кодом с uberperfect testsuite.

Что касается стандартизации, если достаточно людей используют его, он становится стандартом де-факто. вам не нужна официальная печать, хотя, если формат используется достаточно, вы можете воспользоваться официальным типом mime.

Чтобы поговорить об этом, ну, это зависит. Я нашел полезным говорить в терминах объектно-ориентированных сущностей, а также в терминах отношений. Подобные диаграммы базы данных очень полезны в этом отношении.

Наконец, сначала попробуйте найти достойную стандартную альтернативу или, по крайней мере, попытайтесь не разобраться с необработанными битами. Существует множество идеальных форматов контейнеров, которые освобождают вас от многих неприятных задач. Выбор контейнера зависит от фактического типа файла (например, если вам требуется шифрование, перемежение, транзакции и т. Д.).

+0

+1 для: реального кода с uberperfect testuite. – Nifle

+0

В этом конкретном случае это «еще один формат контейнера». Как я сказал в комментарии к моему вопросу, это включает в себя шифрование, и я достаточно умен, чтобы знать, что я недостаточно умен для этого. Насколько мне известно, в настоящее время ничего не существует, как то, что я предлагаю. –

1

Есть несколько способов, по которым я бы это сделал.

Прежде всего, определите, существует ли орган стандартов (например, W3C или IEEE), который может быть связан с вашим файловым форматом. Если есть, отправьте их им. Я понятия не имею, насколько они восприимчивы.

Во-вторых, стандарт бесполезен, если никто его не использует. Получите некоторый импульс за этим. Напишите сообщение в блоге, twitter и создайте сайт об этом. Ссылка на programming.reddit.com и slashdot. Опишите это своим друзьям и коллегам. Отправьте его здесь на SO и попросите обратной связи.

HTH.