tag:blogger.com,1999:blog-10303035.post5524207944386091686..comments2024-02-04T23:20:04.066+03:00Comments on Алёна C++: Критика boost::serializeAlenahttp://www.blogger.com/profile/09389124127364799922noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-10303035.post-57948950592050602622013-05-21T13:03:25.311+04:002013-05-21T13:03:25.311+04:00Использовал буст более чем в 10и проектах, в том ч...Использовал буст более чем в 10и проектах, в том числе и сериализацию. Проблемы были, но связаны они были больше с моим недопониманием, чем с проблемой в самом бусте. Буст - это круто.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-55607481756856102202011-03-09T16:35:20.407+03:002011-03-09T16:35:20.407+03:00ASN действительно слишком запутанная штука и компи...ASN действительно слишком запутанная штука и компиляторы стоят дорого. Неплохо бы посмотреть на Google Protocols.<br />PS: Мирослав, с какой это радости совместимость должна рассыпаться в версии X+1???? Она как раз не должна. В этом-то и заключается цимес нормальных методов сериализации.LBhttps://www.blogger.com/profile/09673316625914340031noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-34129675035135632432011-03-07T19:04:42.983+03:002011-03-07T19:04:42.983+03:00Эмоции блоггера понятны (у меня были похожие) - ав...Эмоции блоггера понятны (у меня были похожие) - автор библиотеки на самом деле не совсем адекватный человек (ну или такое впечатление он создает).<br /><br />Как-то автор взял и стал сохранять версии объектов как 1 байт, хотя везде тип версии был обозначен как unsigned int. После того как со сменой буста все перестало работать пошел гуглить. <br />Сейчас уже не приведу урл, но автор упорно говорил что это не баг а так и должно быть - он где-то в доках писал что версия должна помещаться в один байт, ну а кто думал по-другому он не виноват. следующая версия показала что автор признал неправоту.<br />В целом ситуация когда следующая версия может не прочитать то что сохранила предыдущая - восхищает.<br />с другой стороны библиотека работает да и код получается нормальный - т.ч. думайте сами.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-18967602964096075832011-03-03T01:27:08.224+03:002011-03-03T01:27:08.224+03:00ASN.1 стадарт неплохой, но в последних редакциях ч...ASN.1 стадарт неплохой, но в последних редакциях чересчур всеохватный и комплексный. Более того, его использование подразумевает наличие компилятора, генерирующего код на целевом языке для кодирования и декодирования структур. А серьезные ASN.1 компиляторы ориентированы на рынок телекомов и стоят сумасшедшие деньги. А лучший из бесплатных - asn1c - генерирует код только для простого С.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-75302101064288502272011-03-02T21:00:28.999+03:002011-03-02T21:00:28.999+03:00Рекомендую ознакомиться с Abstract Syntax Notation...Рекомендую ознакомиться с Abstract Syntax Notation 1 (ASN.1) - язык описания структур данных, конечной целью которого является, в сущности, сериализация/десериализация.<br />Плюсы:<br />1. Стандарт ITU-T<br />2. Не привязан к конкретному языку программирования, но существуют трансляторы описаний структур данных ASN.1 в структуры данных и процедуры сериализации/десериализации для массы ЯП (С, С++, Java, ...)<br />3. Существует несколько правил кодирования (сериализации, encoding rules), оптимизированных под производительность/размер получаемых данных/...<br /><br />ASN.1 получил широкое распространение, например, телекоммуникационные протоколы.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-7910068366294175732011-02-28T17:16:35.819+03:002011-02-28T17:16:35.819+03:00boost - это набор библиотек, самых разных - сложны...boost - это набор библиотек, самых разных - сложных и простых... Нельзя говорить о нем в единственном лице...<br />P.S. boost делает разработку на С++ более/менее приемлимой, особенно в начальной стадии проектаAlex Otthttps://www.blogger.com/profile/13001951608173211050noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-82818054329074842062011-02-28T17:14:23.376+03:002011-02-28T17:14:23.376+03:00boost слишком сложная либа, лучше его не юзатьboost слишком сложная либа, лучше его не юзатьAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-78401522499286264102011-02-28T13:54:05.693+03:002011-02-28T13:54:05.693+03:00Тормозит он очень.Тормозит он очень.Andreyhttps://www.blogger.com/profile/16201443526225351421noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-15305622632068002702011-02-26T19:06:30.424+03:002011-02-26T19:06:30.424+03:00Спасибо, пост пришёлся очень в тему :) Не ожидал, ...Спасибо, пост пришёлся очень в тему :) Не ожидал, что в бусте могли допустить несовместимость между минорными версиями...<br />Кстати, библиотеку сериализации я бы стал обновлять в последнюю очередь - чему там обновляться? Заморозить версию да и всё. Ну а если буст не позволяет обновить другие библиотеки не затронув сериализацию, то явно лучше что-то другое использовать.Rnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-22905770816420365612011-02-26T12:59:02.243+03:002011-02-26T12:59:02.243+03:00boost::serialize удобно использовать для хранения ...boost::serialize удобно использовать для хранения данных локальных для данной машины/версии. Я бы не выбрал его для общения между нодами, особенно если другие ноды используют другие языки программирования. Давно есть thrift, google protobuf и еще пачка отлаженных мульти-языковых технологийAlex Otthttps://www.blogger.com/profile/13001951608173211050noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-24636397220918582152011-02-26T12:25:35.467+03:002011-02-26T12:25:35.467+03:00классическая ошибка - путать сериализацию и проток...классическая ошибка - путать сериализацию и протокол общения в гетерогенной среде. Сериализация (любая хоть даже от mfc) дает байты как оно в бинарнике версии X. Разумеется оно рассыпается уже в версии X+1. Ну и "а буст не умеет все сам" месадж из того поста намекает на опыт и/или его отсутствие :)Miroslavhttps://www.blogger.com/profile/08682508835432008058noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-30276597060448884922011-02-26T05:46:35.787+03:002011-02-26T05:46:35.787+03:00Весьма типичная история про OpenSource технологии....Весьма типичная история про OpenSource технологии.<br /><br />Про сериализацию - реклмендую например <a href="http://const.me/articles/net-tcp/" rel="nofollow">Binary XML</a>.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-84356755760426472012011-02-26T00:58:05.052+03:002011-02-26T00:58:05.052+03:00Ох уж этот буст.
Заметка не то чтобы сильно удиви...Ох уж этот буст.<br /><br />Заметка не то чтобы сильно удивительная, честно говоря. Вот если бы он написал что boost::serialize это очень круто, то тогда это была бы бомба! <br /><br />Пожалуй, кому-нибудь стоит написать книгу про то в каких случаях буст стоит использовать. :-Dasfdfdfdhttps://www.blogger.com/profile/09783593880351293663noreply@blogger.com