Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Минимальное апи. extract BaseCell #27

Open
zerkalica opened this issue Nov 20, 2016 · 4 comments
Open

Минимальное апи. extract BaseCell #27

zerkalica opened this issue Nov 20, 2016 · 4 comments

Comments

@zerkalica
Copy link

По аналогии с fail не хватает pend. Т.к. управлять статусом через pull неудобно.

Хорошее апи должно быть простым, минимальным и расширяемым без рефакторинга. Например атомы в clojure.

В базовом классе Cell много всего, нельзя ли выделить основной класс только с минимальными апи: computable/get/set/subscribe/reap и доступом к masters, что б можно было на основе этого лепить свои isPending, getError, fail, pend, pull, put.

Не всегда этот стаф нужен. Взгляни на derivable он в 2 раза меньше cellx, но его апи позволяет навернуть всю эту мишуру с pull/put/errors/pending поверх. При том, что в нем тоже дофига лишнего: линзы, реакторы и т.д.

Базовый cellx может быть еще меньше, кил в 5 минифицированного кода.

@Riim
Copy link
Owner

Riim commented Nov 21, 2016

А что должен делать pend?

@zerkalica
Copy link
Author

Управлять pending-статусом. setPending(isPending: boolean) правильнее назвать. Для ошибок такая штука есть - fail, логично что и для статуса будет.

Короче есть случаи, когда через pull неудобно косвенно влиять на isPending, хочется полностью управлять атомом со стороны.

@Riim
Copy link
Owner

Riim commented Nov 21, 2016

Переход isPending в true должен происходить при разрешении (resolve) ячейки, для ошибки это fail, для нормального разрешения push (он же set).

@zerkalica
Copy link
Author

Да, когда isPending внутри атома, пожалуй ты прав. По #24 (comment) я просто хотел один подход для работы со статусами и ошибками при сохранении и загрузке, отделив все эти податомы в отдельные атомы и управляя ими со стороны.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants