@codenamecrud

Страница 978 из 1009
Nikita
06.09.2018
08:46:15
предположим мне нужен update, я вынужден буду делать все поля optional?

с create схемой то вопросов нет

Google
Anton
06.09.2018
08:46:57
required().maybe

Boris
06.09.2018
08:47:12
Nikita
06.09.2018
08:47:24
Anton разве required не обязывает наличие ключа в хеше?

Anton
06.09.2018
08:47:42
Но там он может быть заполнен или нет

Nikita
06.09.2018
08:48:13
а если я обновляю только 1 поле у модели? он же мне в эррорах высрет кучу говна

Anton
06.09.2018
08:48:24
Не должен

Nikita
06.09.2018
08:48:30
ну я же проверял

Roman
06.09.2018
08:48:37
высрет, надо optional

Nikita
06.09.2018
08:48:42
тут вариант только делать optional

для обновления

и required для создания

Google
Roman
06.09.2018
08:48:52
если возможен null, то с maybe

Nikita
06.09.2018
08:49:04
если возможен null, то с maybe
даже звучит страшно ?

Boris
06.09.2018
08:49:20
еще можно сделать отдельно форму, а необходимые на все случаи жизни валидации - в модели.

Anton
06.09.2018
08:49:38
Да, я попутал, maybe на nil значение

Boris
06.09.2018
08:49:49
Вообще для простого CRUD хватит и ORM (допустим ActiveRecord или SequelModel) валидации

Nikita
06.09.2018
08:49:52
и еще вопросик, если в драй валидейшене юзаешь config.type_specs = true, значит нужно всем атрибутам прописывать тип?

Anton
06.09.2018
08:50:02
Nikita
06.09.2018
08:50:42
это не простой круд

из них примерно 30-50 валидации

которых там не должно быть

Boris
06.09.2018
08:51:50
тогда 2 формы на create/update. Можно сделать одну базовую, другую от нее унаследовав.

Nikita
06.09.2018
08:52:04
Ага, 2 формы
Антон, по config.type_specs = true, если его true делаешь, то обязательно нужно 2-м аргументом в required писать тип же, верно?

Boris
06.09.2018
08:53:04
наследование боль
не помню уже точно, но в dry-validation как-то это делал

Nikita
06.09.2018
08:53:11
это не нужно

лучше сделать 2 независимых формы

Boris
06.09.2018
08:53:20
ну тебе виднее)

Nikita
06.09.2018
08:53:26
на create и update

@davydovanton @RomanPa спасибо за помощь

Google
Boris
06.09.2018
08:53:40
очень зависит от ситуации

Nikita
06.09.2018
08:53:51
это зависит не от ситуации

Nikita
06.09.2018
08:54:22
ок, спасибо

Boris
06.09.2018
08:54:44
это зависит не от ситуации
ну дублировать код пользуясь dry-rb не должно быть нужно по идее=)

Nikita
06.09.2018
08:55:06
ну если все делать аля DONT REPEAT YOURSELF

то у тебя в проекте будет пиздос, ибо будут всякие левые наследования, консерны и тонна метапрограммирования

если нравится мазахизм, то enjoy

Roman
06.09.2018
08:55:53
есть еще принцип KISS, который по мне даже важней :)

Nikita
06.09.2018
08:56:12
да

это самый топорный и самый очевидный паттерн

Boris
06.09.2018
08:56:19
то у тебя в проекте будет пиздос, ибо будут всякие левые наследования, консерны и тонна метапрограммирования
я не говорю все, я говорю что встречаются кейсы где можно инхеритить схему. Например валидация сигнатуры, которая во всех формах одинаковая)

Boris
06.09.2018
08:56:58
да их тоже пользовал. Например для валидации биткоин-адресов

Nikita
06.09.2018
08:57:12
например валидация номера телефона, эмейла, даты и т.д.

Boris
06.09.2018
08:57:20
ну да

Nikita
06.09.2018
08:57:29
ну так ты сам себе противоречишь ?

Boris
06.09.2018
08:58:06
ну так ты сам себе противоречишь ?
нет, просто считаю что каджое решение хорошо в своей ситуации

где-то наследование, где-то композиция

Google
Nikita
06.09.2018
08:58:43
да, но по своему опыту могу сказать, что наследование в руби крайне редко бывает оправданным

Boris
06.09.2018
08:58:46
это не взаимоисключающие понятия

Nikita
06.09.2018
08:59:14
Игорь, ну говори уже)

Nikita
06.09.2018
08:59:37
мой опыт не солидарен с твоим)
и это круто! есть чем поделиться

Boris
06.09.2018
08:59:49
Nikita
06.09.2018
09:00:14
можно

Boris
06.09.2018
09:00:39
и временами очень даже хочется=)

state все-таки боль

Admin
ERROR: S client not available

Nikita
06.09.2018
09:00:51
ага, в функциональщине тоже круто

Boris
06.09.2018
09:01:58
ладно друзья, вернусь к лячканью говноспеков=) чтот на новой работе почти нет времени поболтать

Serhii
06.09.2018
09:19:29
И типизацию обязательно добавить. Тоже хайп по ней!

Roman
06.09.2018
09:23:38
можно вообще от ООП отказаться
наследование в ООП не то что бы необходимая фича

Dimon
06.09.2018
09:33:16
Были бы абстрактные классы в рубях

Vasiliy
06.09.2018
09:33:53
вот тогда бы зажили

Dimon
06.09.2018
09:34:09
Ну

Было бы больше смысла в наследовании

Roman
06.09.2018
09:45:36
че ты под абстрактным классом понимаешь?

Google
Roman
06.09.2018
09:45:55
бля короче насчет скрещивания ООП с функциональщиной в руби тут подвезли

Dimon
06.09.2018
09:45:56
как в джаве

Roman
06.09.2018
09:46:03
а че там?

Vasiliy
06.09.2018
09:46:13
абстрактные классы

Roman
06.09.2018
09:46:17
а

ясно

в моем любимом flamegragh завезли явное отображение циклом GC

и получаются интересные инсайты

Dimon
06.09.2018
09:46:45
https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

Aldar
06.09.2018
09:46:45
как в джаве
как в С++ скорее, в жабе интерфейсы

Roman
06.09.2018
09:46:53
http://joxi.net/xAeBpG6HpZ5Jkr.png

пикрил - срез работы апи-прокси

голубое слева - запрос апишки через typhoeus

а плоские одноуровневые куски - это как раз когда профайлер натыкался на интерпретатор в процессе сборки мусора

Vasiliy
06.09.2018
09:47:57
нихуя ты художник

Roman
06.09.2018
09:47:57
их примерно 40%

то есть элементарная вообще задача

получил xml по http, распарсил его OX'ом, конвертнул на лету в хеш, это на 40% - сборка мусора

а теперь представьте что у вас функциональная иммутабельность и вам на каждый чих надо собирать новый объект

https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
в чем проблема то же самое в руби сделать?

точнее иначе

нахуй это нужно

Dimon
06.09.2018
09:50:26
method_missing driven development?

Страница 978 из 1009