Мысли о порционных моделях #188

Open
edoroshenko opened this Issue Dec 7, 2013 · 7 comments

Comments

Projects
None yet
2 participants
Contributor

edoroshenko commented Dec 7, 2013

Сейчас чтобы update сделал запрос на сервер, вид должен быть невалиден из-за невалидной модели. Этот факт не позволяет нам делать дозапрос данных для валидной модели. Т.е. на практике получается, что валидность модели не всегда однозначно связана с необходимостью запроса данных.

Отсюда следует гениальный своей простотой вывод: нужно разделить два состояния: модель невалидна и модель требует запроса данных. Update должен будет проверять не валидность вида, а необходимость запроса у моделей вида и делать нужные запросы. Там ещё про параметры надо подумать, но это уже ближе к реализации.

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

cc @doochik @chestozo

Member

chestozo commented Dec 8, 2013

Сейчас либо вид невалиден, либо модели. И тогда update пойдёт за моделями.
Что такое дозапрос данных для валидной модели? Приведи, пожалуйста, пример валидной модели, для которой надо дозапросить данные.

Про локальные модели: зачем их инвалидировать? Чтобы вид перерисовать?
Можно, кмк, сделать им такое: model.setData(model.getData()). Тогда апнится версия модили и вид перерисуется. А похода на сервер не будет.

Contributor

edoroshenko commented Dec 9, 2013

Приведи, пожалуйста, пример валидной модели, для которой надо дозапросить данные.

Да, я не очень подробно написал цель этих размышлений.
Это мысль в рамках расуждения о едином интерфейсе порционных моделей.
Загрузил порцию коллекции. Коллекция валидна, но недогружена. Когда понадобилась следующая порция, вместо того, чтобы танцевать с бубном, просто говоришь коллекции, что нужно запросить следующую порцию. Следующий update идёт на сервер и получает её

Member

chestozo commented Dec 9, 2013

Ну т.е. речь только про коллекции? Или есть ещё другие варианты использования с обычными моделями?

Contributor

edoroshenko commented Dec 10, 2013

Вариант использования с обычными моделями - это локальные модели. У меня таких немеряно, и ни одну из них я точно не хочу запрашивать с сервера. А по нынешней логике если от неё зависит view, а она невалидна, он пойдёт на сервер

Member

chestozo commented Dec 10, 2013

А почему она может оказаться невалидной?
Если, чтобы перерисовать view - это решается через view.invalidate().
А когда ещё нужно её инвалидить?

Contributor

edoroshenko commented Dec 10, 2013

при destroy например

Member

chestozo commented Dec 10, 2013

Не понимаю до конца кейс. Можем голосом при случае продолжить )

@edoroshenko edoroshenko added pain and removed pain labels Apr 11, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment