http://programmingmindstream.blogspot.ru/2014/07/blog-post_16.html?showComment=1405578068219#c3988161837922350712
Зачем? Этот вопрос надо задать "миллионам людей", которые почему-то "предпочитают бинарную сериализацию". Почему? Вот я тоже хотел бы их спросить. Я на такой код насмотрелся - "выше крыши". И "у нас" и "у других людей".
Потому и написал этот пост.
Насчёт "из коробки" - конечно МОЖНО. Но тут есть "тонкости".
Во-первых "из коробки" это и есть уже "некая схема данных".
Во-вторых - вы про published или про "новый RTTI"?
Если про Published - там тоже есть тонкости - например TPersistent. Который далеко не всегда "подходит для наследования". Посему - тут тоже есть о чём поговорить - либо "примеси", либо "зеркальные объекты". Ну или $M+, но это уже тоже "не из коробки".
Ну и про TPersistent - надо ещё "помнить" про RegisterClass.
Если про "новый RTTI", то тем более - потому, что "сериализовать" обычно надо не всё, а лишь что-то. Т.е. это либо "атрибуты" типа [Serealizeable], либо - "мапа". Что тоже является "схемой данных".
За словами "схема данных" (которая - "непонятная") - "скрываются" - во-первых "мапинг" или указание что сериализуется, а что нет, а во-вторых "отцепление" сериализуемых классов непосредственно от TStream. Не зря я про TReader и TWriter написал. Намекая на "сериализацию" от Borland/Embarcadero.
Зачем нужно "отцеплять"? Затем, чтобы не возиться в КАЖДОМ классе с "версионностью" и сменой "формата" (изменение SizeOf - в частности).
Подробнее уже стоит читать у Срауструпа или GoF.
И ещё раз повторю - "пост родился не на ПУСТОМ МЕСТЕ". На случаи "бинарной сериализации" там где она МЕШАЕТ ЖИТЬ - я насмотрелся - "выше крыши".
И ещё - http://programmingmindstream.blogspot.ru/2014/07/blog-post_16.html?showComment=1405633036027#c3831967224899189431
Зачем? Этот вопрос надо задать "миллионам людей", которые почему-то "предпочитают бинарную сериализацию". Почему? Вот я тоже хотел бы их спросить. Я на такой код насмотрелся - "выше крыши". И "у нас" и "у других людей".
Потому и написал этот пост.
Насчёт "из коробки" - конечно МОЖНО. Но тут есть "тонкости".
Во-первых "из коробки" это и есть уже "некая схема данных".
Во-вторых - вы про published или про "новый RTTI"?
Если про Published - там тоже есть тонкости - например TPersistent. Который далеко не всегда "подходит для наследования". Посему - тут тоже есть о чём поговорить - либо "примеси", либо "зеркальные объекты". Ну или $M+, но это уже тоже "не из коробки".
Ну и про TPersistent - надо ещё "помнить" про RegisterClass.
Если про "новый RTTI", то тем более - потому, что "сериализовать" обычно надо не всё, а лишь что-то. Т.е. это либо "атрибуты" типа [Serealizeable], либо - "мапа". Что тоже является "схемой данных".
За словами "схема данных" (которая - "непонятная") - "скрываются" - во-первых "мапинг" или указание что сериализуется, а что нет, а во-вторых "отцепление" сериализуемых классов непосредственно от TStream. Не зря я про TReader и TWriter написал. Намекая на "сериализацию" от Borland/Embarcadero.
Зачем нужно "отцеплять"? Затем, чтобы не возиться в КАЖДОМ классе с "версионностью" и сменой "формата" (изменение SizeOf - в частности).
Подробнее уже стоит читать у Срауструпа или GoF.
И ещё раз повторю - "пост родился не на ПУСТОМ МЕСТЕ". На случаи "бинарной сериализации" там где она МЕШАЕТ ЖИТЬ - я насмотрелся - "выше крыши".
И ещё - http://programmingmindstream.blogspot.ru/2014/07/blog-post_16.html?showComment=1405633036027#c3831967224899189431
Комментариев нет:
Отправить комментарий