Блог:Стас Фомин/SECR-2011: сводки с полей/Проблемы устойчивости API C++ приложений при расширении функциональности программного обеспечения

From Wiki4Intranet
Jump to: navigation, search

Проблемы устойчивости API C++ приложений при расширении функциональности программного обеспечения

Гендиректор http://www.asoft.ru/ рассказал об изобретенном в компании C++ сериализаторе, устойчивом к изменению схемы данных (добавлению атрибутов). Содержимое доклада по-сути описано в статье http://effitex.com/EffiValue-Russian, а код выложен на http://sourceforge.net/projects/effivalue/

Ну разве что выложен он не совсем кошерно, по принципу «я просто оставлю таргз с сорсами тут». Т.е. сорсы не лежат в репозиториях сорсфорджа, и проект выглядит полтора года как заброшенным — хотя на самом деле, докладчик уверял, что развитие библиотеки идет, просто у них не доходят руки выделить библиотечный код, того, что они собираются публиковать, от совсекретного прикладного софта. Поэтому они выложили тар с сорсами, которую им автоматом вытащила из проекта система сборки. Я заметил, что это, в отличие от отдельного репозитария, слегка опасно, ибо, возможно в деле Сергея Алейникова программист действительно «ошибся окошечком», и закоммитил в CPAN, куда он контрибьютил, лишнего. Впрочем, все это виртуальные проблемы, по сравнению с тем, что проект выглядит мертвым по всем SF-метрикам — нет движения, нет багов и фича реквестов, нет общения в форуме, нет кода в репозитории.

Ну и отдельный, очевидный, вопрос — не велосипед ли? Boost, понятно, (критика boost serialize) пинают все.

Из альтернатив (сам я не очень в теме, на плюсах почти не пишу уже), мне в голову сразу пришел http://code.google.com/p/protobuf/, который вроде про это самое, живее всех живых, активно поддерживается коммитерами из гугла, куча пользователей, преимущества в функционале (можно работать и из Python-а, например, а в EffiValue — нет). Докладчик обещал посмотреть, но раньше они его не пробовали. Есть другие, известные альтернативы: http://msgpack.org/, thrift.

Но возможно есть у EffiValue и плюсы, даже в сравнении с протобуфом. Например, она (может быть?) меньше в скомпилированном виде, что важно, если делать протоколы общения с девайсами. Например, среди зрителей оказался возможный пользователь библиотеки — им надо общаться с видеокамерами по SOAP-based протоколу ONVIF, и тут как раз все богатство функционала других библиотек будет не нужно, если нужно без особого перформанса, общаться эксемельками с глупыми камерами, и чтобы эти камеры не падали при апгрейде протокола.

[ List view ]Comments

(no items)

Please login to comment.