Fixed binary might be a pain in the neck. In my code, however, I gonna keep a binary format in a couple of places. Primarily because, I need an efficient way of storing blobs up to several MBs large. I don't want any bloated text format to come into the way. In addition, I won't have this big/little endian issue in the foreseeable future.
Just yesterday we discussed adding optional nvpairs to the tail of the packet; I did not think I could sell JSON to the guys. Now kaboom, turns out there are just 3 stakeholders, and we all have the same opinion. Fuck the others.
Having had an experience with protocol buffers... they do have an advantage that they are multi-language. What I still don't like there is their Java implementation... rather, Java classes design. One bad bug was fixed, but the architecture still sucks.
мы его начали использовать для сохаранения метадаты в файловом формате на диске. Почему именно YAML - я не в курсе, меня здесь ещё не было.
Почему отошли от YAML'a: у нас много больших клиентов (e.g. Comcast) и легче перейти на стандартный XML что бы удовлетворить их запросам, для XML-a больше парсеров и всякой другой поддержки, мы сейчас переписываем софт под Eclipse - тоже много удобных библиотек напрямую работающих х XML-ом. Лично от меня: мне YAML глаза резал: oткрываешь файл и надо бошку перестраивать, что бы прочитать, XML как то натуральней для привыкшего глаза ;)
Я не учавствовала непосредственно в решениях использовать или отойти от YAML-a, может были и другие причины, но главные загвоздки всё-таки: XML-стандарт и многочисленный tool-ы и библиотеки поддерживающие его. Мы где-то пол-года честно долбились с YAML-ом, после чего архитектор признался, что легче уже сейчас перейти на XML.
Моя ментальная модель всего этого дела примерно такая.
Куча разнообразных клиентов, различной природы, посылают на сервер всякую фигню. Сервер всё равно не в состоянии понять все глюки (см. браузеры и плохой html), но его задача - извлечь информацию. Если может извлечь - хорошо; если не может, ну тогда поскипаем.
Можно, конечно, потребовать, чтобы входные данные соблюдали законы, но что это даст? Да ничего, собственно. Более того, в большинстве случаев, если нам какие данные не нужны, так нам и валидировать их не нужно.
Ну, может на мою модель отложился отпечаток того, что каждый decimal - сумма денег в чьем-то кошельке. В данном конкретном случае не о чем торговаться.
Да, входные данные всё равно вынуждены будут соблюдать какие-то свои, неписанные, законы. Плюс только в том, что на входе не будет висеть ультимативное "посторонним В.". Будет не "вы нашему формату не алё", а "да хуй с ними, пидарами, нам проще самим поправить чтобы парсилось".
Да ладно. Типы-то у данных будут в любом случае. Только вместо того, чтобы инфраструктура сама проверила и сказала что-то типа "в account.id лежит не int", где-то будет IsCorrectInt("account.id") в коде, а где-то - какой-нибудь IncorrectFormatException на выходе.
Компрессируете его, или трафик пофиг? Интресно, потому что тоже с мобил запросы гоняю на сервер и всё время жутко жалко послать лишнего — настолько жалко, что BSON применяю.
no subject
Date: 2010-03-18 06:48 pm (UTC)no subject
Date: 2010-03-18 06:52 pm (UTC)no subject
Date: 2010-03-18 07:03 pm (UTC)no subject
Date: 2010-03-18 07:07 pm (UTC)no subject
Date: 2010-03-18 08:24 pm (UTC)no subject
Date: 2010-03-18 08:44 pm (UTC)no subject
Date: 2010-03-18 09:20 pm (UTC)no subject
Date: 2010-03-18 06:54 pm (UTC)no subject
Date: 2010-03-18 07:05 pm (UTC)no subject
Date: 2010-03-18 07:16 pm (UTC)no subject
Date: 2010-03-18 08:24 pm (UTC)no subject
Date: 2010-03-18 06:50 pm (UTC)no subject
Date: 2010-03-18 06:56 pm (UTC)no subject
Date: 2010-03-18 07:01 pm (UTC)no subject
Date: 2010-03-18 07:17 pm (UTC)no subject
Date: 2010-03-18 07:18 pm (UTC)no subject
Date: 2010-03-18 07:10 pm (UTC)да чего мы только не используем :) даже YAML в какой-то момент мимо пробегал (спасибо быстро опомнились и перевели в XML)
no subject
Date: 2010-03-18 09:07 pm (UTC)no subject
Date: 2010-03-19 12:56 pm (UTC)Почему именно YAML - я не в курсе, меня здесь ещё не было.
Почему отошли от YAML'a: у нас много больших клиентов (e.g. Comcast) и легче перейти на стандартный XML что бы удовлетворить их запросам, для XML-a больше парсеров и всякой другой поддержки, мы сейчас переписываем софт под Eclipse - тоже много удобных библиотек напрямую работающих х XML-ом.
Лично от меня: мне YAML глаза резал: oткрываешь файл и надо бошку перестраивать, что бы прочитать, XML как то натуральней для привыкшего глаза ;)
Я не учавствовала непосредственно в решениях использовать или отойти от YAML-a, может были и другие причины, но главные загвоздки всё-таки: XML-стандарт и многочисленный tool-ы и библиотеки поддерживающие его. Мы где-то пол-года честно долбились с YAML-ом, после чего архитектор признался, что легче уже сейчас перейти на XML.
no subject
Date: 2010-03-20 09:59 am (UTC)no subject
Date: 2010-03-20 10:30 am (UTC)no subject
Date: 2010-03-18 07:20 pm (UTC)no subject
Date: 2010-03-18 08:23 pm (UTC)no subject
Date: 2010-03-19 08:55 am (UTC)no subject
Date: 2010-03-19 06:36 pm (UTC)data packet format to JSON.
Date: 2010-03-18 07:40 pm (UTC)Re: data packet format to JSON.
Date: 2010-03-18 08:00 pm (UTC)Re: data packet format to JSON.
Date: 2010-03-18 08:06 pm (UTC)Никаких проблем там нет.
no subject
Date: 2010-03-18 08:05 pm (UTC)Почти весь мой опыт - про относительно типизируемую сериализацию - SOAP, все дела. Сейчас много работаю с JSON. Печально.
no subject
Date: 2010-03-18 08:12 pm (UTC)Куча разнообразных клиентов, различной природы, посылают на сервер всякую фигню. Сервер всё равно не в состоянии понять все глюки (см. браузеры и плохой html), но его задача - извлечь информацию. Если может извлечь - хорошо; если не может, ну тогда поскипаем.
Можно, конечно, потребовать, чтобы входные данные соблюдали законы, но что это даст? Да ничего, собственно. Более того, в большинстве случаев, если нам какие данные не нужны, так нам и валидировать их не нужно.
Поэтому я против xml schemas and the like.
no subject
Date: 2010-03-18 08:26 pm (UTC)no subject
Date: 2010-03-18 08:30 pm (UTC)no subject
Date: 2010-03-18 11:20 pm (UTC)no subject
Date: 2010-03-19 07:40 am (UTC)no subject
Date: 2010-03-19 08:47 am (UTC)no subject
Date: 2010-03-19 10:19 pm (UTC)no subject
Date: 2010-03-18 10:27 pm (UTC)no subject
Date: 2010-03-19 08:39 am (UTC)no subject
Date: 2010-03-19 06:35 pm (UTC)no subject
Date: 2010-03-19 08:57 pm (UTC)Интресно, потому что тоже с мобил запросы гоняю на сервер и всё время жутко жалко послать лишнего — настолько жалко, что BSON применяю.
no subject
Date: 2010-03-20 12:47 am (UTC)no subject
Date: 2010-03-19 07:42 am (UTC)no subject
Date: 2010-03-19 08:46 am (UTC)кодировать в какой-нибудь Base64 бинарники.
Но это естественные вещи. Да и мелочи это.