Краткий перевод статьи "What is Serializations?" автора George Offley.
Сериализация - это когда мы свои данные переводим в поток байтов, чтобы можно было их куда-то передать. Позже этот поток байтов можно вернуть в прежнее состояние с помощью десериализации.
Сериализация - это процесс, когда один из сервисов берет структуру данных (например, словарь в Python), упаковывает её и передаёт другой службе для чтения.
Представьте, что мне надо передать сообщение кому-то. Я пишу текст, разбиваю его на слова, пишу инструкцию как снова собрать эти слова в сообщение и отправляю инструкцию вместе со словами.
Получатель собирает слова по инструкции и получает моё сообщение.
Технически всё немного сложнее. Сериализация - это процесс конвертции данных в поток байтов, с сохранением структуры объекта для сохранения данных или передачи по сети. Это помогает уменьшить необходимое пространство для хранения и делает передачу данных по сети проще.
Маршалинг и сериализация - это одно и то же?
Вам может вспомниться маршалинг. Маршалинг — это процесс преобразования представления объекта в памяти в форму, подходящую для передачи.
Хотя очень часто сериализация и маршалинг - это синонимы, но есть ключевое различие. Например, при создании программы на Go для преобразования JSON в структуры данных Go, вы можете использовать маршалинг для перевода ключей JSON в переменные Go.
Различие в том, что маршалинг может использоваться для перевода данных. Сериализация, напротив, просто хранит данные в байтовом потоке и потом собирает их обратно. Оба процесса делают сериализацию, но есть разница в целях этих процессов.
Поделиться