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 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
Да уже почти убедили. Ещё, видимо, придётся складывать в пакеты, чтобы "мета" не посылать каждый раз.

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
25 262728 293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 29th, 2025 11:55 am
Powered by Dreamwidth Studios