King JSON

Mar. 18th, 2010 11:38 am
juan_gandhi: (Default)
[personal profile] juan_gandhi
Seems like we here are agreeing to switch from our fixed binary data packet format to JSON. Can't believe my eyes.

Date: 2010-03-18 06:48 pm (UTC)
From: [identity profile] itman.livejournal.com
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.

Date: 2010-03-18 07:07 pm (UTC)
From: [identity profile] yakov-sirotkin.livejournal.com
В нём нет big/little endian issue.

Date: 2010-03-18 08:24 pm (UTC)
From: [identity profile] itman.livejournal.com
Я не очень понимаю, каким образом utf-8 решают проблему передачи, например, массива целых чисел.

Date: 2010-03-18 08:44 pm (UTC)
From: [identity profile] yakov-sirotkin.livejournal.com
JSON в UTF-8 может передать массив целых чисел:)

Date: 2010-03-18 09:20 pm (UTC)
From: [identity profile] itman.livejournal.com
Так причем здесь UTF-8? Это, вообще, ASCII формат. Но речь идет о том, что это неэффективное представление больших данных.

Date: 2010-03-18 06:54 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
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.
Edited Date: 2010-03-18 06:55 pm (UTC)

Date: 2010-03-18 07:05 pm (UTC)
From: [identity profile] itman.livejournal.com
Well, if efficiency is the issue, you could have switched to Google protocols. Or to whatever else similar and open source.

Date: 2010-03-18 07:16 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
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.

Date: 2010-03-18 08:24 pm (UTC)
From: [identity profile] itman.livejournal.com
Ok. I think most designs have flaws.

Date: 2010-03-18 06:50 pm (UTC)
From: [identity profile] yakov-sirotkin.livejournal.com
Поздравляю!

Date: 2010-03-18 06:56 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Спасибо! Жизнь становится легче, э.

Date: 2010-03-18 07:01 pm (UTC)
From: [identity profile] sorhed.livejournal.com
А вам для чего? :)

Date: 2010-03-18 07:17 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Данные посылать с клиента на сервер, причём никто не знает точно, что в этих данных будет, и желательно оставить место для творчества.

Date: 2010-03-18 07:18 pm (UTC)
From: [identity profile] sorhed.livejournal.com
Ну тогда всё правильно. :)

Date: 2010-03-18 07:10 pm (UTC)
From: [identity profile] aaquaa.livejournal.com
да, мы тоже JSON используем, очь удобно.

да чего мы только не используем :) даже YAML в какой-то момент мимо пробегал (спасибо быстро опомнились и перевели в XML)

Date: 2010-03-18 09:07 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
О, расскажите, что вы плохого нашли в YAML. Я на него сейчас смотрю со смутным подозрением, но ничего конкретного сказать не могу.

Date: 2010-03-19 12:56 pm (UTC)
From: [identity profile] aaquaa.livejournal.com
мы его начали использовать для сохаранения метадаты в файловом формате на диске.
Почему именно YAML - я не в курсе, меня здесь ещё не было.

Почему отошли от YAML'a: у нас много больших клиентов (e.g. Comcast) и легче перейти на стандартный XML что бы удовлетворить их запросам, для XML-a больше парсеров и всякой другой поддержки, мы сейчас переписываем софт под Eclipse - тоже много удобных библиотек напрямую работающих х XML-ом.
Лично от меня: мне YAML глаза резал: oткрываешь файл и надо бошку перестраивать, что бы прочитать, XML как то натуральней для привыкшего глаза ;)

Я не учавствовала непосредственно в решениях использовать или отойти от YAML-a, может были и другие причины, но главные загвоздки всё-таки: XML-стандарт и многочисленный tool-ы и библиотеки поддерживающие его. Мы где-то пол-года честно долбились с YAML-ом, после чего архитектор признался, что легче уже сейчас перейти на XML.

Date: 2010-03-20 09:59 am (UTC)

Date: 2010-03-20 10:30 am (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
и спасибо ;-)

Date: 2010-03-18 07:20 pm (UTC)
From: [identity profile] kashnikov.livejournal.com
BSON, смотрели http://bsonspec.org/ ?

Date: 2010-03-18 08:23 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Да, это хорошая альтернатива если что.

Date: 2010-03-19 08:55 am (UTC)
From: [identity profile] kashnikov.livejournal.com
Кстати а http://code.google.com/p/protobuf/ , Вам не подходят по каким причинам? Просто интересно.

Date: 2010-03-19 06:36 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
protocol buffers прекомпилируются... можно, конечно, вставить туда nvpairs... надо подумать.

Re: data packet format to JSON.

Date: 2010-03-18 08:00 pm (UTC)
From: [identity profile] http://users.livejournal.com/_windwalker_/
xml сложнее. в нём ещё есть мудацкие namespaces.

Re: data packet format to JSON.

Date: 2010-03-18 08:06 pm (UTC)
From: [identity profile] alextr98.livejournal.com
Тогда можно оставить всё в двоичном виде.
Никаких проблем там нет.

Date: 2010-03-18 08:05 pm (UTC)
From: [identity profile] jakobz.livejournal.com
Я подсознательно против нетипизируемой сериализации. Если был бы серьезный опыт и там, и там, аргументировал бы серьёзно. Но сейчас не могу.

Почти весь мой опыт - про относительно типизируемую сериализацию - SOAP, все дела. Сейчас много работаю с JSON. Печально.

Date: 2010-03-18 08:12 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Моя ментальная модель всего этого дела примерно такая.

Куча разнообразных клиентов, различной природы, посылают на сервер всякую фигню. Сервер всё равно не в состоянии понять все глюки (см. браузеры и плохой html), но его задача - извлечь информацию. Если может извлечь - хорошо; если не может, ну тогда поскипаем.

Можно, конечно, потребовать, чтобы входные данные соблюдали законы, но что это даст? Да ничего, собственно. Более того, в большинстве случаев, если нам какие данные не нужны, так нам и валидировать их не нужно.

Поэтому я против xml schemas and the like.

Date: 2010-03-18 08:26 pm (UTC)
From: [identity profile] jakobz.livejournal.com
Ну, может на мою модель отложился отпечаток того, что каждый decimal - сумма денег в чьем-то кошельке. В данном конкретном случае не о чем торговаться.

Date: 2010-03-18 08:30 pm (UTC)
From: [identity profile] jakobz.livejournal.com
Да, входные данные всё равно вынуждены будут соблюдать какие-то свои, неписанные, законы. Плюс только в том, что на входе не будет висеть ультимативное "посторонним В.". Будет не "вы нашему формату не алё", а "да хуй с ними, пидарами, нам проще самим поправить чтобы парсилось".

Date: 2010-03-18 11:20 pm (UTC)
From: [identity profile] cema.livejournal.com
С json можно устроить duck typing, а строгая типизация при обмене данными через интернет редко бывает нужна.

Date: 2010-03-19 07:40 am (UTC)
From: [identity profile] jakobz.livejournal.com
Да ладно. Типы-то у данных будут в любом случае. Только вместо того, чтобы инфраструктура сама проверила и сказала что-то типа "в account.id лежит не int", где-то будет IsCorrectInt("account.id") в коде, а где-то - какой-нибудь IncorrectFormatException на выходе.

Date: 2010-03-19 08:47 am (UTC)
From: [identity profile] kashnikov.livejournal.com
Почти, так, да. http://martin.jambon.free.fr/json-static.html ;-)

Date: 2010-03-19 10:19 pm (UTC)
From: [identity profile] cema.livejournal.com
Тут уместна не столько типизация, сколько валидация.

Date: 2010-03-18 10:27 pm (UTC)
From: [identity profile] 109.livejournal.com
rdf:пихай_чего_хочешь

Date: 2010-03-19 08:39 am (UTC)
From: [identity profile] asd.livejournal.com
Bы с мобил на сервер будете присылать json или между разными серверными компонентами?

Date: 2010-03-19 06:35 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
С мобил на сервер, да.

Date: 2010-03-19 08:57 pm (UTC)
From: [identity profile] asd.livejournal.com
Компрессируете его, или трафик пофиг?
Интресно, потому что тоже с мобил запросы гоняю на сервер и всё время жутко жалко послать лишнего — настолько жалко, что BSON применяю.

Date: 2010-03-20 12:47 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Да уже почти убедили. Ещё, видимо, придётся складывать в пакеты, чтобы "мета" не посылать каждый раз.

Date: 2010-03-19 07:42 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Для явиста как-то странно: это же удобно.

Date: 2010-03-19 08:46 am (UTC)
From: [identity profile] nivanych.livejournal.com
С JSON мне только чуть не понравилась необходимость
кодировать в какой-нибудь Base64 бинарники.
Но это естественные вещи. Да и мелочи это.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

May 2025

S M T W T F S
    1 2 3
456 7 8 9 10
11 121314151617
181920 21 222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 24th, 2025 12:19 pm
Powered by Dreamwidth Studios