Pull to refresh

Comments 6

Сам не программист, но читать было интересно. Спасибо.
Рад что статья понравилась! В этом не только моя заслуга, но и заслуга добрых людей, помогавших при её написании советами и правками.
Правда же, что протобуф с его рефлексией и возможностью сериализации/десереализации состояния не подходит для решения данной задачи?
Имеется в виду вот это? Если да, то это не совсем то, как я понял. Здесь минимум идёт завязка на какие-то дополнительные, создаваемые помимо исходного кода файлы. Чтобы стало яснее, можете написать миниатюрный пример класса с использованием protobuf для работы с его метаданными?
Если да, то это не совсем то, как я понял

Зависит от того, что вам действительно нужно.

Если нужна сериализация, то ProtoBuffers (или Thrift, а также несколько иных) могут это, причем в разных форматах. Плюс к этому — решение interoperability «из коробки» и дополнительный или встроенный (Thrift) клиент/сервер (если они вам нужны, конечно).

Да, дополнительные исходники действительно автоматически создатся из описания интерфейса, сделанного на IDL. Однако для многих задач наличие IDL скорее плюс, чем минус. Например, для тех же сетевых интерфейсов и interoperability. Сам процесс генерирования исходников легко встраивается в любые build-системы, включая используемый вами cmake.

А вообще, тема «run-time reflection in C++» довольно спорная. Например, «отец-онователь» всегда был против, согласившись только на compile-time. Поэтому ваша библиотека будет, скорее всего, нишевой с ограниченным количеством пользователей.
Ну, тут важно, что рефлексию можно добавлять по желанию, только к некоторым классам, которые того требуют… Но про ProtoBuffers почитаю детальнее и добавлю в статью в упоминание аналогов, спасибо.

Вообще, в данном цикле статей я больший упор хотел сделать на историю разработки некой библиотеки, безотносительно к cpprt: от написания исходников (с акцентом на какие-то интересные безотносительно библиотеки вещи), до формирования репозитория (с уроком CMake) и продвижения библиотеки (где часть продвижения подразумевает публикацию цикла статей). Такой себе учебный демо-проект для людей, которые подумывали выложить свой open source, но либо боялись, либо не знали как.

Согласен с тем, что я недостаточно точно сартикулировал эту мысль. Подумаю как её можно точнее выразить в статьях.
Sign up to leave a comment.

Articles