Буферы протокола Google
Я думаю, что существует давняя путаница между сериализацией и сообщениями .
Сериализация
Обычно недолговечен и включает в себя обход объектов.
Как указано в статье, COM
и CORBA
являются хорошо известными примерами его использования.
Сообщения
о связи между различными сущностями.
Проблема в том, что многие люди, когда видят проблему с сообщениями, просто думают: сериализуйте и покончите с этим.
Но это не адаптировано.
Сериализация объекта означает способность «кодировать» объект и восстанавливать его ... что произойдет, если вы внезапно изменили свой путь, и каким был один объект, теперь 2, как вы справляетесь с обратной совместимостью?
Проблема здесь в том, что если сериализация работает очень хорошо с стабильной моделью, любое изменение модели может быть проблемой.
Обмен сообщениями с другой стороны, декоррелирует кодирование и декодирование сообщения из текущей модели, поэтому изменения в модели просто необходимо учитывать при кодировании и декодировании сообщения, и модель освобождается от бремени обратной совместимости.
Теперь для файла конфигурации вам, вероятно, нужна обратная совместимость. Тогда в ваших же интересах выбрать решение для обмена сообщениями.
Я предлагаю Google Protocol Buffers
, потому что это нормально и проверено.
- Прямая и обратная совместимость легко обрабатываются
- Может генерировать либо читабельный, либо двоичный формат
- Одно и то же сообщение может быть закодировано / декодировано на разных языках
Мне не нужно представлять, почему 1. важен. 2. означает, что вы можете просто отредактировать файл вручную, чтобы настроить его, 3. означает, что вы можете легко кодировать графический интерфейс или скрипт проверки.