Size: a a a

Saint P Ruby Community

2021 March 03

w

wi11son in Saint P Ruby Community
ща пофикшу
источник

AD

Anton Davydov in Saint P Ruby Community
wi11son
а еще я всегда думал о репозиториях как о штуке, которая исключительно доменная, т.е. UsersRepository нужен, если мы хотим вытащить для дашборда юзеров, а если мы хотим например юзеров с их балансами, которые лежат в другой таблице, то это будет например UsersBalancesRepo, которое строит запрос и возвращает другую структуру, хоть и в базе оно обращается к 100500 таблицам
У меня такое было отношение: есть юзеры для одного домена (например ордеров), есть для другого (биллинг) вот тут два репозитория с разной логикой но для юзеров
источник

w

wi11son in Saint P Ruby Community
готово
источник

AD

Anton Davydov in Saint P Ruby Community
wi11son
а, я понял
Ага
источник

AD

Anton Davydov in Saint P Ruby Community
wi11son
т.е. to_a надо в конце метода for_dashboard
Ага
источник

DG

Dmitry Grach in Saint P Ruby Community
`attr_reader :repo` еще можно под private убрать
источник

w

wi11son in Saint P Ruby Community
Anton Davydov
Я бы модель через конструктор прокидывал бы и вместо миксинов наследование бы сделал. А в целом круто, мне нравится 👍
зачем только через наследование? чем это лучше?
источник

w

wi11son in Saint P Ruby Community
Dmitry Grach
`attr_reader :repo` еще можно под private убрать
а с какой целью?
источник

DG

Dmitry Grach in Saint P Ruby Community
а с какой целью оно будет торчать наружу? )
источник

w

wi11son in Saint P Ruby Community
всегда воспринимаю private как условность, такой ритуал для того чтоб людям вокруг было красивее
источник

DG

Dmitry Grach in Saint P Ruby Community
так код и пишется для людей в первую очередь
особенно, если язык сам по себе красивый, такой как Ruby, и распологает к тому, чтобы делать людям красиво, то почему нет?
источник

DG

Dmitry Grach in Saint P Ruby Community
а вот тут
https://gist.github.com/IvanShamatov/e5db7f936ecf80bb7ba2ffdaee7d7712#file-users_repo-rb-L17
repo - это getter, или уже переменная внутри метода с таким же именем, которая просто getter перекрыла собой?
IMO плохая практика вот так что-то перекрывать
источник

AD

Anton Davydov in Saint P Ruby Community
wi11son
зачем только через наследование? чем это лучше?
Да просто вкусовщина
источник

w

wi11son in Saint P Ruby Community
ок, поправил, сделав ридер приватным
источник

AP

Aleksandr Pilishenko in Saint P Ruby Community
Зачем писать геттер, если переменная за пределами класса (даже в наследниках) нигде не используется?
источник

AP

Aleksandr Pilishenko in Saint P Ruby Community
repo = filtered(dataset: repo, filter: filter) - вот тут непонятно, уйдёт в filtered репо из геттера, или nil из только что объявленной локальной переменной. Читатель не обязан знать такие тонкости языка
источник

AP

Aleksandr Pilishenko in Saint P Ruby Community
На мой взгляд, приватные геттеры нужны только для классов-наследников. А в самом классе надо использовать переменную с собачкой. Для наглядности) Но это скорее вкусовщина
источник

DG

Dmitry Grach in Saint P Ruby Community
wi11son
ок, поправил, сделав ридер приватным
💖
источник

AD

Anton Davydov in Saint P Ruby Community
Aleksandr Pilishenko
На мой взгляд, приватные геттеры нужны только для классов-наследников. А в самом классе надо использовать переменную с собачкой. Для наглядности) Но это скорее вкусовщина
Есть с этим проблема, гетер имутабельный как интерфейс, а инстанс переменная - нет
источник

AP

Aleksandr Pilishenko in Saint P Ruby Community
Anton Davydov
Есть с этим проблема, гетер имутабельный как интерфейс, а инстанс переменная - нет
Согласен. Но этот вопрос в любом случае на совести разработчика. Написал вместо attr_reader attr_accessor - и вот тебе мутабельность) Защита от сильного дурака, не более того)
источник