Сериализация объектов
От: LaptevVV Россия  
Дата: 30.06.04 11:17
Оценка:
Никак не могу въехать в дурацкий термин "серализация" (пардон, нечаянно пропустил, но исправлять уже не стал — это ясное указание моего подсознания на эту проблему )
Почему нерпеменно новый термин? И так же ежу понятно, что при записи на внешнее устройство байты пишутся. В чем фишка-то?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Сериализация объектов
От: MaximE Великобритания  
Дата: 30.06.04 11:43
Оценка: 4 (1)
LaptevVV wrote:

> Никак не могу въехать в дурацкий термин "серализация" (пардон, нечаянно пропустил, но исправлять уже не стал — это ясное указание моего подсознания на эту проблему )

> Почему нерпеменно новый термин? И так же ежу понятно, что при записи на внешнее устройство байты пишутся. В чем фишка-то?

http://en.wikipedia.org/wiki/Serialization

--
Maxim Yegorushkin
Posted via RSDN NNTP Server 1.9 beta
Re[2]: Сериализация объектов
От: LaptevVV Россия  
Дата: 30.06.04 11:52
Оценка:
Здравствуйте, MaximE, Вы писали:

ME>LaptevVV wrote:


>> Никак не могу въехать в дурацкий термин "серализация" (пардон, нечаянно пропустил, но исправлять уже не стал — это ясное указание моего подсознания на эту проблему )

>> Почему нерпеменно новый термин? И так же ежу понятно, что при записи на внешнее устройство байты пишутся. В чем фишка-то?

ME>http://en.wikipedia.org/wiki/Serialization


Читаем:

Serialization is the process of taking an in memory data structure of an object and encoding it into a serial (hence the term) sequence of bytes.

А ДО ооп было не так же разве? Но никто не называл процесс вывода сериализацией.
Если я пишу:

struct A { int a; float b: } a;
fwrite (&a, 1, sizeof(a), file);

это не сериализация разве? Но никто ж ее так не называет?
Или дело в том, что имеются ввиду контейнеры, которые часто вместо значений хранят указатели. Тогда для вывода надо сначала слазить за значением, а потом уж выводить. А при вводе — наоборот: сначала память выделить, а потом уж читать?
Ы?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Сериализация объектов
От: bugmonster Россия  
Дата: 30.06.04 12:08
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>
LVV>struct A { int a; float b: } a;
LVV>fwrite (&a, 1, sizeof(a), file);
LVV>

LVV>это не сериализация разве? Но никто ж ее так не называет?

Нет, вот если бы твоя структура определяла методы (не буду говорить для чего),
а потом объявлялись её потомки, которые эти методы наследовали и переопределяли бы.
Вся фишка в том что используя сериализацию своих данных в наследниках от чужих, уже
сделаных классов, гарантируется правильные загрузка и сохранение как данных предка,
о которых вы ничего не знаете, так и ваших данных, причем в один поток,
и с неизвестным вам форматом записи.
Re[4]: Сериализация объектов
От: LaptevVV Россия  
Дата: 30.06.04 12:37
Оценка:
Здравствуйте, bugmonster, Вы писали:

B>Здравствуйте, LaptevVV, Вы писали:


LVV>>
LVV>>struct A { int a; float b: } a;
LVV>>fwrite (&a, 1, sizeof(a), file);
LVV>>

LVV>>это не сериализация разве? Но никто ж ее так не называет?

B>Нет, вот если бы твоя структура определяла методы (не буду говорить для чего),

B>а потом объявлялись её потомки, которые эти методы наследовали и переопределяли бы.
B>Вся фишка в том что используя сериализацию своих данных в наследниках от чужих, уже
B>сделаных классов, гарантируется правильные загрузка и сохранение как данных предка,
B>о которых вы ничего не знаете, так и ваших данных, причем в один поток,
B> и с неизвестным вам форматом записи.
Ага, в предке должны быть определены методы вроде save и load. Эти методы я могу явно вызывать в методах-наследниках, чтобы гарантированно правильно записать часть предка.
Ы?
В этом случае мы говорим о сериализации, поскольку наследник о записи предка на диск нифига не знает.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Сериализация объектов
От: Кодт Россия  
Дата: 30.06.04 13:32
Оценка: 34 (4)
Здравствуйте, LaptevVV, Вы писали:

<>
LVV>В этом случае мы говорим о сериализации, поскольку наследник о записи предка на диск нифига не знает.

По большому счёту, не имеет значения, работаем мы с ООП или нет.

Некоторая сущность предметной области имеет 2 представления: в памяти (модель) и в хранилище (образ).

Свёртывание/развёртывание модели в образ и обратно — и есть сериализация.

Хранилище — это преимущественно последовательная (serial) и компактная форма, со своим адресным пространством, которое может быть подобно адресному пространству памяти (смещения от начала файла), а может и не быть (файл на некотором языке разметки; ассоциативные хранилища; и т.п.)

Модель, помимо сохраняемых (persistent) свойств и связей, имеет состояние — свойства и связи времени исполнения. Копировать их в хранилище — не нужно, а порой и нельзя (чтобы образы одной модели были одинаковы).

Полиморфизм при сериализации — проявляется в двух моментах.
Движок хранилища оперирует некоторыми примитивами (например, пишет/читает серии байтов, или базовый набор типов).

Во-первых, информация модели должна быть декомпозирована до обратимой последовательности примитивов, причём для разных моделей эта последовательность может различаться: например, варьируется число компонентов модели; некоторые свойства взаимозависимы; и т.п.
Во-вторых, движок предметной области может поддерживать разнообразие не только количества и связей, но и типов компонентов.

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

Вот. Заметьте: наговорил кучу слов, но ни разу не упомянул про объекты
Перекуём баги на фичи!
Re[6]: Сериализация объектов
От: LaptevVV Россия  
Дата: 30.06.04 13:39
Оценка:
Здравствуйте, Кодт, Вы писали:

LVV>>В этом случае мы говорим о сериализации, поскольку наследник о записи предка на диск нифига не знает.


К>По большому счёту, не имеет значения, работаем мы с ООП или нет.

[]
К>Вот. Заметьте: наговорил кучу слов, но ни разу не упомянул про объекты
А зачем тогда такой странный термин придумали? всегда делали совершенно то же самое, но при этом не говорили, что это сериализация. И только с появлением ООП возник этот термин.
Ы?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Сериализация объектов
От: Кодт Россия  
Дата: 30.06.04 14:51
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>>>В этом случае мы говорим о сериализации, поскольку наследник о записи предка на диск нифига не знает.


К>>По большому счёту, не имеет значения, работаем мы с ООП или нет.

LVV>[]
К>>Вот. Заметьте: наговорил кучу слов, но ни разу не упомянул про объекты
LVV>А зачем тогда такой странный термин придумали? всегда делали совершенно то же самое, но при этом не говорили, что это сериализация. И только с появлением ООП возник этот термин.

А слово "маршалинг" придумали вообще в DCOM. Хотя и раньше вовсю маршалировали...

Скорее всего, именно в ООП с его инкапсуляцией и полиморфизмом тонкие места сериализации вылезли в полный рост, и разработчикам пришлось взглянуть на эту задачу более системно.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.