
Alex
18.01.2017
10:14:19
особенно со всякими if:
потому что они потом начинают противоречить новым фичам и в модель что то еще добавлять становится все сложнее.

Антон
18.01.2017
10:14:37

Google

Alex
18.01.2017
10:15:05
зато я вижу, if: something, и так раз 5, и начинается пляска, как все эти if подружить с новым кейсом.
это противоречие формального описания бизнес модели, т.е конкретной реализации программиста которую он делал до того как встретился с новыми требованиями.
Никто не говорит что нельзя поправить существующие if валидации, просто с каждым разом это все сложнее.

Антон
18.01.2017
10:17:13
так это общая проблема, а не проблема валидаций
чем больше кода, тем тяжелее править

Alex
18.01.2017
10:17:58
Не совсем, в некоторых местах можно отключить ненужные валидации
просто это иногда проще когда в каждом месте приема/редактировании модели валидации свои.
чем подгонять одну модель под все кейсы.

Dima
18.01.2017
10:20:29

Антон
18.01.2017
10:20:36

Dima
18.01.2017
10:21:05
Алсо для валидаций давно юзаю dry-validation

Michael
18.01.2017
10:21:32
добрый день.
ребята, чем вы отслеживаете ошибки на продакшене??

Google

Антон
18.01.2017
10:21:51

Dima
18.01.2017
10:21:52
Они лучше стандартных + заметно легчает модель, если у валидаций сложная логика

Антон
18.01.2017
10:21:58

Andrey
18.01.2017
10:22:09
привет, у нас они в специальный канал в slack постятся, очень удобно

Антон
18.01.2017
10:22:30

Michael
18.01.2017
10:22:42

Dima
18.01.2017
10:22:45
http://solnic.eu/2015/12/07/introducing-dry-validation.html статья старая, но в общем все также.

Антон
18.01.2017
10:23:03

Andrey
18.01.2017
10:23:09
вот кусок gemfile

Антон
18.01.2017
10:23:44
ляпота

Michael
18.01.2017
10:24:05
Антон @veldrin92 ясно, спасибо большое

Andrey
18.01.2017
10:24:42

Антон
18.01.2017
10:25:21
давайте выучим новый DSL?

Dima
18.01.2017
10:25:57
Статью прочитай

Антон
18.01.2017
10:26:04
по диагонали правда
там куча проблем описана которые выдуманы

Dima
18.01.2017
10:27:10
1) информативность
2) больше возможностей
3) логика сложных валидаций уходит из моделей.

Google

Антон
18.01.2017
10:27:23
всмысле больше? другой язык чтоли? не руби?
3) форм обджекты
1) это что за зверь такой?
4) и животноводство

pny
18.01.2017
10:28:29
dry-v отлично заходит в форм обжекты

Dima
18.01.2017
10:28:56
В общем попробуй dry-rb.com еще захочешь

Антон
18.01.2017
10:28:59

pny
18.01.2017
10:29:14
не учи

Dima
18.01.2017
10:29:19
Не учи

Антон
18.01.2017
10:29:52
dry-* усложняет простые вещи
увеличитвает стоимость поддержки проекта
увеличивает время вхождения

pny
18.01.2017
10:30:36
dry-* упрощает сложные вещи
уменьшает стоимость поддержи большого проекта
уменьшает время вхождения в мелкие элементы большого проекта

Dima
18.01.2017
10:30:50
+

Антон
18.01.2017
10:31:14

pny
18.01.2017
10:31:42
Вот ты береш человека на работу, который в глаза не видел твой проект. Кто будет платить за то что этот человек тратит время на вкуривание проекта?
Чот херовые аргументы

Tony
18.01.2017
10:32:01
в руби можно упорядоченный массив перемешать?

Антон
18.01.2017
10:32:16

Сергей
18.01.2017
10:32:18
.shuffle ?

Dima
18.01.2017
10:32:31
Разбираться в коде или разбираться в стандартных сниппетах? Нет уж, я лучше выберу 2. Слава богу, что ты не мой тимлид

Google

Антон
18.01.2017
10:33:05

pny
18.01.2017
10:34:59
Только консерватизм, только хардкор

Dima
18.01.2017
10:35:10
+

Антон
18.01.2017
10:35:42
а что плохого в том, что я стандартными средствами делаю тоже самое и также драйно как в dry-validations?

Dima
18.01.2017
10:37:22
Не используй гемы вообще кроме рельс. Слишком сложно всё.

Антон
18.01.2017
10:37:54
Не используй гемы вообще кроме рельс. Слишком сложно всё.
давайте разберем проблемы
1)
Validation logic lives in two layers, controller and persistence, you need to remember about both to properly validate parameters
решили проблему
теперь у нас два слоя, слой схемы и слой валидации
упростили чтоли?

Dima
18.01.2017
10:38:06
Давай не будем
Я просто поделился тем, что я использую этот гем

Антон
18.01.2017
10:38:24
Давай не будем
нет чоуж, если оскарбления не помогают придется юзать доводы

Admin
ERROR: S client not available

Dima
18.01.2017
10:38:25
Не хочешь использовать
Не используй
Все.

Антон
18.01.2017
10:38:47
ну вот... чож все так сливаются быстро

Dima
18.01.2017
10:39:05
Время дороже, сори

Tony
18.01.2017
10:40:06

pny
18.01.2017
10:40:51
> Антон
Validation logic lives in two layers, controller and persistence, you need to remember about both to properly validate parameters
решили проблему
теперь у нас два слоя, слой схемы и слой валидации
упростили чтоли?
ШТА?!

Антон
18.01.2017
10:41:03
ТА

pny
18.01.2017
10:41:12
ты не читатель что ли?
Два слоя это при использовании AM:V

Google

Антон
18.01.2017
10:42:17
ну я вижу что для разных состояний нужно будет две UserSchema создавать

pny
18.01.2017
10:42:40
Для разных валидаций? Ну логично

Антон
18.01.2017
10:42:45
AM:V 1 слой
второй имеется в виду в контроллере

pny
18.01.2017
10:43:15
Профит в том что это именно валидация данных, не привязанная к персистентности

Антон
18.01.2017
10:43:28
что это значит?
AM:V можео использовать без объекта AR

Mikhail
18.01.2017
10:44:02
Какие валидации предпочитаете?
ActiveModel Validation – 6
??????? 50%
Легко заюзаю любой вариант, я же не джун – 6
??????? 50%
Dry rb Validation
▫️ 0%
Пишу свои костыли
▫️ 0%
? 12 people voted so far.

pny
18.01.2017
10:44:10
Пример: тебе приходит CSV файл. На, пускай, десять метров, который надо провалидировать и загрузить. И показать юзеру в каких строчках ошибки.
Как реализуешь?

ⰿⰰⰾⱏ
18.01.2017
10:46:22

Антон
18.01.2017
10:46:30
Как реализуешь?
lines.map { |line| object = object.create(line); object.valid? || object.errors }

pny
18.01.2017
10:46:54
бвахаха

Alex
18.01.2017
10:46:54
Часто бывает что в проекте есть большая модель вокруг которой все вертится

Антон
18.01.2017
10:47:10

pny
18.01.2017
10:47:13
То есть для валидации ты будешь пытаться создавать объект?

ⰿⰰⰾⱏ
18.01.2017
10:47:22

Антон
18.01.2017
10:47:48
ватевар

pny
18.01.2017
10:48:03
object.errors? :)

Антон
18.01.2017
10:48:14
и?