Подтвердить что ты не робот

Любой опыт работы с протокольными буферами?

Я просто просматривал некоторую информацию о Google протоколах буферов в формате обмена данными. Кто-нибудь играл с кодом или даже создал вокруг него проект?

В настоящее время я использую XML в проекте Python для структурированного контента, созданного вручную в текстовом редакторе, и мне было интересно, какое общее мнение было в протокольных буферах как пользовательский формат ввода. Преимущества скорости и краткости, безусловно, существуют, но есть так много факторов, когда дело доходит до фактической генерации и обработки данных.

4b9b3361

Ответ 1

Если вы ищете взаимодействие с пользователем, придерживайтесь xml. В настоящее время он имеет большую поддержку, понимание и общее признание. Если бы он был внутренним, я бы сказал, что буферы протокола - отличная идея.

Возможно, через несколько лет, когда появятся дополнительные инструменты для поддержки буферов протоколов, начните смотреть на это для публики, стоящей перед api. До тех пор... JSON?

Ответ 2

Буферы протокола предназначены для оптимизации обмена данными между машинами. Они действительно не предназначены для человеческого взаимодействия. Кроме того, формат является двоичным, поэтому он не может заменить XML в этом случае использования.

Я бы также рекомендовал JSON как самый компактный текстовый формат.

Ответ 3

Из вашего краткого описания это звучит так, как буферы протокола не подходят. Фраза "структурированный контент, созданный вручную в текстовом редакторе" довольно сильно кричит для XML.

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

Ответ 4

Другим недостатком двоичного формата, такого как PB, является то, что если есть один бит ошибки, весь файл данных не является разборным, но с JSON или XML, в качестве последнего средства вы можете вручную исправить ошибку, потому что это человек читаемый и имеет встроенную резервную копию.