Страница 1 из 1

cJSON: Вопросы связанные с Callback: FindCB()

Добавлено: 19 Сентябрь 2024, 6:39
Игорь Столяров
ДД !

Здесь я буду записывать вопросы связанные с реализацией и работой Callback: FindCB().
Как я понимаю, что его использование - это не частый случай и потому опыт будет полезен.

--- МИНУСЫ ---

1. На больших структурах данных (сотни тегов) включение FindCB() сильно замедляет выгрузку JSON пакета.
Причём это ощущается даже на маленьких объёмах данных (2-3 записи).
Здесь ключевой параметр - это именно размер самой структуры.

2. Появляется зависимость от последовательности следования групп тегов, что тебует очень аккуратной работы
со структурой данных и её комментирования (что уже идёт в разрез с идеями Дуглас Крокфорда).

3. Наличие "прямого" доступа к структуре данных. Т.е. нельзя обрабатывать структуры переданные
как *GROUP / *QUEUE, что уже ограничивает функционал заложенный в самом классе cJSON.

4. Про огромный объём кода, который сложен в сопровождении даже можно и не упоминать ... ;)

--- ПЛЮСЫ ---

1. Можно ввести зависимость состава выгружаемых тегов от данных.
Т.е. например управлять набором тегов в зависимости от типа выгружаемой записи.
В механизме OPTION этот вопрос вообще не рассматривается.

--- ИТОГ ---

При использовании FindCB() всё работает правильно !
Но укаазнные вопросы говорят о том, что FindCB() - это скорее некий отладочный фокус, а не боевой режим работы ...