Size: a a a

2020 August 17

AA

Alexey Anarion in ☄️ effector
кроме того, мне кажется странным идея переиспользования одного поля (вместе с его сторами и эвентами) в двух разных формах. Переиспользование валидаторов или их совокупности - это да
источник

З

Завтра in ☄️ effector
я в своих проектах таким вообще не занимался. я пилил что-то вроде
const $isLoginValid = allPass(required, minLength(5))($value)

это куда гибче и как раз валидации между полями можно нормально задавать - в едином формате, наглядно и без монструозных API на объектах
> учитывая то что валидации полей могут быть взаимосвязанными
да, учитывая это, получаем оверинжиниринг в createForm
источник

AA

Alexey Anarion in ☄️ effector
Завтра
я в своих проектах таким вообще не занимался. я пилил что-то вроде
const $isLoginValid = allPass(required, minLength(5))($value)

это куда гибче и как раз валидации между полями можно нормально задавать - в едином формате, наглядно и без монструозных API на объектах
> учитывая то что валидации полей могут быть взаимосвязанными
да, учитывая это, получаем оверинжиниринг в createForm
Да, я тоже делал также, пока у меня не появился проект с 10 формами по 14 полей в каждой :)
В этом случае мы получаем просто чудовищный бойлерплейт и как следствие баги и замедление разработки
источник

З

Завтра in ☄️ effector
Ну а в твоем получаем чудовищный API
Чудовищный бойлерплейт > чудовищное API
источник

AA

Alexey Anarion in ☄️ effector
Завтра
Ну а в твоем получаем чудовищный API
Чудовищный бойлерплейт > чудовищное API
Чудовищность апи вещь весьма субъективная.
На каждое поле нам нужен как минимум
1. Стор со значением
2. Эвент для изменения
3. Стор с ошибками

Объявление вот этого + биндинг это значительно больше кода чем

{
   init: "",
   rules: []
}
источник

З

Завтра in ☄️ effector
А теперь представь, что валидация поля confirmation опциональна, если не выполняется одно из правил в password
Добавь сюда работу со списками
Вспомни про типизацию
источник

AA

Alexey Anarion in ☄️ effector
Завтра
А теперь представь, что валидация поля confirmation опциональна, если не выполняется одно из правил в password
Добавь сюда работу со списками
Вспомни про типизацию
c типизацией там все хорошо)
источник

AA

Alexey Anarion in ☄️ effector
фабрика формы возвращает типизированный объект в котором все поля по ключам типизированы
источник

AA

Alexey Anarion in ☄️ effector
Завтра
А теперь представь, что валидация поля confirmation опциональна, если не выполняется одно из правил в password
Добавь сюда работу со списками
Вспомни про типизацию
По поводу зависимости одного валидатора от правила в другом валидаторе - ни разу не встречал такого кейса (не спорю, возможно он есть).  Кейсы вообще штука коварная.
Я не ставил цели покрыть все возможные кейсы. Я ставил цель облегчить разработку большинства типовых форм
источник

AA

Alexey Anarion in ☄️ effector
Покрывать все кейсы штука неблагодарная
источник

З

Завтра in ☄️ effector
и не забудь еще вспомнить про динамические формы, которые с твоим createForm вообще невозможны
источник

AA

Alexey Anarion in ☄️ effector
Покрыть все кейсы - это это либо создать фреймворк, либо создать действительно чудовищное апи
источник

AA

Alexey Anarion in ☄️ effector
Завтра
и не забудь еще вспомнить про динамические формы, которые с твоим createForm вообще невозможны
Да, именно поэтому они упомянты как будущая фича в конце доки :)
источник

З

Завтра in ☄️ effector
Alexey Anarion
Да, именно поэтому они упомянты как будущая фича в конце доки :)
и еще больше усложнят чудовищный апи
источник

AA

Alexey Anarion in ☄️ effector
динамические поля будут, но их я еще не продумывал
источник

З

Завтра in ☄️ effector
вот тебе для примера
источник

З

Завтра in ☄️ effector
источник

З

Завтра in ☄️ effector
источник

AA

Alexey Anarion in ☄️ effector
Завтра
и еще больше усложнят чудовищный апи
Я преследовал сугубо корыстную цель - избавиться от бойлерплейта в большинстве своих СТАТИЧЕСКТ описываемых формах. Я ее достиг, получил примерно в 4 раза меньше кода
источник

З

Завтра in ☄️ effector
реальный кейс, коих на моем проекте были десятки
источник