Хотелось бы, чтобы в документации помимо перечисления полей для возвращаемых библиотекой объектов (из обычных функций API и из коллбэков On*) было также указано, может ли значение отсутствовать или нет.
Сейчас приходится делать практически наугад, что заметно осложняет создание схемы объектов, например, в тех же Protocol Buffers: например, в том же trans_reply от OnTransReply не указано, может ли отсутствовать order_num. Я так понимаю, что может отсутствовать, в случае если это невалидная тразакция. С сериализацией null в бинарных протоколах, скажем так, не очень, поэтому мне приходится делать это поле не примитивом, а строкой, и на стороне десериализации трактовать пустую строку как null. И таких полей великое множество. Если бы в документации было указано, что nillable, а что -- нет, то это существенно облегчило бы задачу и бонусом добавило бы производительности в конечное решение.
Сейчас приходится делать практически наугад, что заметно осложняет создание схемы объектов, например, в тех же Protocol Buffers: например, в том же trans_reply от OnTransReply не указано, может ли отсутствовать order_num. Я так понимаю, что может отсутствовать, в случае если это невалидная тразакция. С сериализацией null в бинарных протоколах, скажем так, не очень, поэтому мне приходится делать это поле не примитивом, а строкой, и на стороне десериализации трактовать пустую строку как null. И таких полей великое множество. Если бы в документации было указано, что nillable, а что -- нет, то это существенно облегчило бы задачу и бонусом добавило бы производительности в конечное решение.