@proRuby

Страница 689 из 1594
Anton
03.09.2017
21:10:59
просто у меня перед глазами самые яркие примеры это фс внутри фс поверх фс и т.д
так в той же рельсе аналогичная проблема с абстракциями

Alex
03.09.2017
21:11:06
Но это не совсем про AR/Rom, это больше о недостатках отрыва от физической модели.

Nikita
03.09.2017
21:11:44
в роме адаптеры потому и существуют, что абстракции текут

Google
Alex
03.09.2017
21:11:57
так в той же рельсе аналогичная проблема с абстракциями
согласен, но там обычно если что то получается нестандартно - то это явно в методе прописывается

например то что он вместо базы в редис лезет.

и тогда не будет мысли искать в базе поле post_count для topic'а, потому что из модели явно видно что она из редиса берется.

что за адаптеры?

Nikita
03.09.2017
21:13:55
что за адаптеры?
http://rom-rb.org/status/

каждый адаптер идет со своими представлениями о том, как ему работать с хранилищем

Aleksandr
03.09.2017
21:14:36
согласен, но там обычно если что то получается нестандартно - то это явно в методе прописывается
оч зависит от того как часто он в редис лазает если предположить, что у меня редис был бы основным храниищем. ну допустим есть сервис, который отвечает за некритичные данные чего-то там и он выполнен отдельным приложением - со своей хранилкой - редисом тут в полне вероятно, что это было бы не явно, а модель была бы завязана на хранилище по аналогии

Nikita
03.09.2017
21:15:23
так это адаптеры для репозиториев да?
адаптеры для хранилищ, репозиторий уже будет доставать данные через эти адаптеры

Alex
03.09.2017
21:15:30
я просто с rom вообще не работал, я только общее представление о нем наверное имею.

Nikita
03.09.2017
21:15:31
но это будет в явном виде

Alex
03.09.2017
21:15:43
ну это по сути что то типа гемов pg и прочего?

Google
Alex
03.09.2017
21:15:53
поверх которых AR работает.

Nikita
03.09.2017
21:17:22
близко, но не то. Под адаптером да, есть конкретный адаптер к БД, но смысл ром-адаптера, чтобы предоставить идиоматичный интерфейс доступа к данным

http://rom-rb.org/3.0/learn/sql/queries/ вот как это в случае выглядит в случае реляционных баз

нужно понимать, что это относится лишь к взаимодействию с базой, в приложении этот слой скрыт обычно за репозиторием

репозиторий будет тем интерфейсом, с которым общается приложение. В нем будет явно написано куда сходить и че достать

class TaskRepo < ROM::Repository[:tasks] def by_id_with_user(id) tasks.by_pk(id).wrap_parent(user: task_repo.users).one end end

вот какой-то примерчик

Alex
03.09.2017
21:20:32
без понимания абстракции этот кусок как то совсем не читается.

Nikita
03.09.2017
21:21:28
тут нет абстракции, вот в чем дело, это сиквел-запрос, разложенный на составляющие

Alex
03.09.2017
21:21:36
сиквел запрос есть абстракция

Nikita
03.09.2017
21:21:47
над чем же?

Alex
03.09.2017
21:21:50
это не голый SQL например. Который впрочем тоже абстракция но низкоуровая.

Nikita
03.09.2017
21:22:24
ты попутал, у тебя у реляционной базы нет другого интерфейса

Alex
03.09.2017
21:22:40
не всегда.

Nikita
03.09.2017
21:22:42
нет такого варианта сходить и прочитать данные с диска

Alex
03.09.2017
21:22:50
У mysql можно сбоку прикрутить какой то nosql доступ

Nikita
03.09.2017
21:23:06
не понимаю что мы обсуждаем

Alex
03.09.2017
21:23:31
тут нет абстракции, вот в чем дело, это сиквел-запрос, разложенный на составляющие
говоря проще, я с сиквелом не работал, поэтому читается как будто первый раз AR в глаза увидел.

Alex
03.09.2017
21:24:00
wrap_parent непонятен пока

Google
Nikita
03.09.2017
21:24:26
это может быть просто неудачный нейминг, не зацикливайся

Anton
03.09.2017
21:24:51
имелся в виду SQL запрос
SQL /ˈsiːkwəl/ (About this sound listen) SEE-kwəl

Alex
03.09.2017
21:25:33
это может быть просто неудачный нейминг, не зацикливайся
а можешь для wrap_parent написать эквивалент на AR?

Nikita
03.09.2017
21:25:43
главная идея — у тебя есть вполне предсказуемая логика при построении запросов, поэтому ты можешь выражать всякое разное, просто короче, чем через сам сиквел, который трехбуквенный

Alex
03.09.2017
21:26:36
там цепочки релейшенов как в AR есть?

Nikita
03.09.2017
21:27:14
а можешь для wrap_parent написать эквивалент на AR?
ну там это будет joins, вроде Tasks.where(id: task_id).joins(:user).first

Alex
03.09.2017
21:27:49
все остальные куски довольно очевидны, а вот wrap_parent сходу не был ясен.

Nikita
03.09.2017
21:28:01
да, есть

Anton
03.09.2017
21:28:07
там цепочки релейшенов как в AR есть?
Все до метода `one` и есть цепочка релейшенов

Alex
03.09.2017
21:28:38
ну я там просто вижу tasks а не self, полагаю что суть таже. Оно продолжает текущую цепочку

Alex
03.09.2017
21:29:05
контрольный вопрос, если rom очевидно лучше AR подхода

почему его так мало юзают?

Anton
03.09.2017
21:30:07
Мало кто знает, комьюнити маленькое, сложность входа. Все как и у всех

Nikita
03.09.2017
21:30:09
почему его так мало юзают?
смешно сказать, но по сути он только дозрел, потому что его строят снизу вверх

Alex
03.09.2017
21:30:42
снизу вверх т.е сначала адаптеры а потом поверх них репозиторий?

чтобы все кейсы отловить?

Nikita
03.09.2017
21:30:59
все сложно)

Google
Nikita
03.09.2017
21:32:21
это правда сложная библиотека, снизу вверх это значит, что прежде чем строить высокоуровневые абстракции нужно сначала разобраться с низкоуровневыми, попробовать разные подходы, отобрать что хорошо рабоатет, отрефакторить, продолжать развивать

Alex
03.09.2017
21:32:57
я что то такое и подразумевал, отловить все кейсы чтобы построить хорошую абстракцию высшего порядка

самый геморой это когда ты стабилен, пишешь новый низкоуровневый адаптер, и там чего то из высшего порядка не хватает )

спасибо за разговор, стало явно больше желания глянуть на то что представляет из себя rom и ханами.

Michael
04.09.2017
07:18:39
Добрый день, подскажите пожалуйста кто каким гемом пользуется для работы с http://ocrsdk.com/

Admin
ERROR: S client not available

Artem
04.09.2017
07:58:35
Народ, кто-нибудь знает, есть в Ruby (или Rails) структура типа хэша, которая ключи по === сравнивает? Частенько пишу такое: case some_var when 1 then 'asd' when 2..5 then 'qwe' end А хотелось бы так: convert_map = { 1 => 'asd', (2..5) => 'qwe' } convert_map.fetch(some_var)

Dmitriy
04.09.2017
08:22:08
Всем добрый день!

Каверин
04.09.2017
08:22:21
Dmitriy
04.09.2017
08:22:31
Подскажите, кто как бэкапит приложение рельсовое? Используете гем backup?

или есть другие более хорошие средства

Dmitriy
04.09.2017
08:35:55
и того и того)

Fedor
04.09.2017
08:36:14
код отлично бэкапится при помощи git push

Alexander
04.09.2017
08:36:27
ког в гитхабе. или капистрано хранит несколько предыдущих релизов

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

Yaroslav
04.09.2017
08:37:36
бекап базы или кода?
А еще uploads всякие бывают

Dmitriy
04.09.2017
08:39:56
а гемом backup никто не пользовался?

Google
Timur
04.09.2017
08:40:09
В DO есть опция бэкапа за 20%. Как работает и что именно делает - хз

Dmitriy
04.09.2017
09:03:23
не, это свой сервер

Alan
04.09.2017
09:22:03
Я тут с dry-validation играюсь. Есть ли примеры проектов на rails где этот гем используется?

v
04.09.2017
09:22:54
есть, инфа соточка

Anton
04.09.2017
09:22:57
есть посты, 100%, код не смотрел особо, но думаю найти можно

v
04.09.2017
09:23:16
тут по-моему каждый третий уже с dry-* игрался

v
04.09.2017
09:24:21
лучше бы хаскеле писали

Alan
04.09.2017
09:24:58
а что конкретно надо?
просто общую картину как работает rails и dry

Nikita
04.09.2017
09:29:01
лучше бы хаскеле писали
именно, валите все на хаскель

просто общую картину как работает rails и dry
рельсы работают как рельсы, а dry это просто либа. Конечно, есть в том или ином виде best practicies, но это достаточно условно

Alexander
04.09.2017
09:31:42
просто общую картину как работает rails и dry
мне например в апи очень удобно было валидировать входящие параметры. еще до кого как я их отправялял в модель

Nikita
04.09.2017
09:32:36
и это круто!
я вчера поискал, даже в вакансиях теперь встречается Ж)

Alexander
04.09.2017
09:32:38
так же валидации вообще лучше бы убрать из моделей. а вынести в сервисы/интеракторы/экшены, смотря кто как называет

Nikita
04.09.2017
09:33:15
rly

Alexander
04.09.2017
09:33:19
хочу добраться до драй транзакций. но все не могу

Страница 689 из 1594