Сериализация в процессе

Перелопатил кучу кода. Со стороны Django все максимально просто, там буквально пара изменений в json-сериализаторе и получаем plist-сериализатор. Вот с Cappuccino посложнее будет, там никакой объектной модели готовой нет, надо все писать с нуля. Стараюсь делать код более-менее похожим на CoreData, заворачиваю магию через KVC. В принципе, единственную сложность пока составляют 1-M и M-M зависимости, которые надо вытягивать так, что б не блокировать UI. Лениво, т.е. Сейчас пробую применить подход прокси-классов (прокси знает, кого он представляет по имени модели и первичному ключу), которые будут лениво фетчить модель и потом проксировать все селекторы…

2010-00-24 20:09:09.234 Cappuccino [info]: Registered class <TIProject 0x000171> for tracker.project
XHR finished loading: "http://localhost:8000/sync/tracker.project/".
2010-00-24 20:09:09.343 Cappuccino [info]: instantinated model <TIProject TEST> with pk TEST
2010-00-24 20:09:09.346 Cappuccino [info]: Registered class <TIGroup 0x00016f> for auth.group
2010-00-24 20:09:09.349 Cappuccino [info]: set description -> A test project
2010-00-24 20:09:09.352 Cappuccino [info]: set lead -> <TIModelProxy for <TIUser 0x00016d>:1 (unresolved)>
2010-00-24 20:09:09.355 Cappuccino [info]: set maintainers -> <TIModelProxy for <TIGroup 0x00016f>:1 (unresolved)>,<TIModelProxy for <TIGroup 0x00016f>:2 (unresolved)>
2010-00-24 20:09:09.357 Cappuccino [info]: set title -> Test Project
2010-00-24 20:09:09.359 Cappuccino [info]: set watchers -> 
2010-00-24 20:09:09.362 Cappuccino [info]: decoded <TIProject TEST>

Еще я заметил, что firefox и chrome болт ложили на “debugger;”, так что я снова вернулся к отладке в safari.

Sayonara RESTful API, welcome P-Sync!

В последнее время я активно ковыряю Cappuccino на предмет написания красивого и удобного (в первую очередь, для себя) багтрекера. Бекенд системы я пишу на Django, так как этот веб-фреймворк я знаю лучше всего (после своего FOW, конечно, но хочется иметь относительно легкопереносимую систему).

Первые мокапы я начал делать на базе RESTful API, в целом, хорошего подхода для проектировки веб-API вооще. Но сегодня я заметил, что и на сервере, и на клиенте у меня практически идентичный код для сериализации-десереализации моделей и хуки на разные действия с ними. И подумалось мне, что это не хорошо.

На самом деле, клиентскую часть надо было изначально рассматривать с точки зрения десктопного приложения. Ведь если бы я делал изначально нативное приложение, я бы занимался не передачей событий, а передачей наборов объектов, проще говоря, синхронизацией базы на клиенте и базы на сервере. Естественно, с некоторыми оговорками на права доступа, но все же делать универсальный механизм синхронизации.

Эх, мне бы еще CoreData в Cappuccino, вообще бы ляпота была ^_^