@proRuby

Страница 1323 из 1594
Roman
01.08.2018
12:58:36
ты хочешь персистить объекты между запросами?

не думаю, что это хорошая затея

Anton
01.08.2018
12:58:57
в этом же прикол

Google
Anton
01.08.2018
13:00:06
не мутируешь стейт - юзаешь объекты между запросами - кешируешь объект (не вызов) - получаешь меньше потребление памяти на запрос (не нужно будет все создавать из раза в раз) - получаешь одно место, где создаются объекты все (это позволяет контролировать все(

Roman
01.08.2018
13:00:12
ну... я даже не знаю, типа сервис отсылки смс, в который dependency передается апишка, а в call - юзер?

Anton
01.08.2018
13:00:30
ага

Roman
01.08.2018
13:00:42
ну а если апишек отсылки несколько

и какая нужна - определяется в реквест-тайм

Anton
01.08.2018
13:00:52
и в тестах прокидываешь замоканую апизу

Roman
01.08.2018
13:01:04
так я и в моем случае могу мокать

Foo.new(deps_and_params).call

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

Anton
01.08.2018
13:02:17
так и не надо один объект делать для всего

Roman
01.08.2018
13:03:20
ну так как же не надо, когда ты хочешь создать и закешировать его

на моем текущем проекте почти все сервисы на вход принимают исключительно request-specific ифну

Tim
01.08.2018
13:07:12
Антон правильно говорит

Google
Roman
01.08.2018
13:07:28
нет понятия "правильно"

есть один подход, и есть другой

Tim
01.08.2018
13:08:15
phone = Phone.new('79287239292') phone.send_sms(a,b) phone.send_sms(c,d)

правильно - это не через жопу

Roman
01.08.2018
13:08:55
phone = Phone.new('79287239292') phone.send_sms(a,b) phone.send_sms(c,d)
если такое действительно надо - то тогда да

но это не то, что говорил Антон

Tim
01.08.2018
13:09:22
SendSmsService.new('7282837', a,b).call - это через жопу

Roman
01.08.2018
13:09:50
с чего бы это череж жопу?

SendSmsService.new('7282837', a,b).call SendSmsService.new('7282837', с,d).call вот так да, глупо

не спорю

Tim
01.08.2018
13:10:51
ну а к чему вопрос

Roman
01.08.2018
13:11:31
вопрос к тому, что если у меня sendsmsservice вызывается с конкретным номером один раз за реквест, то мне нет смысла делать new(123).send('asd')

Alex
01.08.2018
13:11:31
Привет! Посоветуйте плиз норм сервис для пуш уведомлений

думаю юзать какой-нибудь onesignal

Tim
01.08.2018
13:12:39
завтра тебе надо дважды отправить и все тут

Ilya
01.08.2018
13:13:28
Roman
01.08.2018
13:13:32
а послезавтра окажется, что для этих вызовов есть еще что-то общее

Tim
01.08.2018
13:13:46
например?

Google
Roman
01.08.2018
13:13:55
завтра тебе надо дважды отправить и все тут
например PhoneService.new(phone, mode).send_message(asd)

и ты все равно пойдешь править

Tim
01.08.2018
13:14:24
это не тоже самое что и отправлять соазу же

Alex
01.08.2018
13:14:33
мы юзаем onesignal
и как впечатления? все ок? были какие-то косяки?

Roman
01.08.2018
13:15:03
это не тоже самое что и отправлять соазу же
я ж не говорю отправлять сразу же

new.call это не сразу же

Максим
01.08.2018
13:15:44
то есть нет такого Foo.new(dependencies).call(params)
а если тебе нужен будет сам обхект без результата?

теряется переиспользуемость

Roman
01.08.2018
13:15:53
ну не делай call

Максим
01.08.2018
13:16:04
ну и зачем такие неявные вещи тогда нужны

Roman
01.08.2018
13:16:09
какие неявные?

это конструктор + вызов

ты можешь не писать в 1 строку все

Максим
01.08.2018
13:16:23
ну что можно на класс тут вызывать а тут можно на обхект вызывать

Tim
01.08.2018
13:16:31
ну не делай call
и какая разница? я тем же обьектом не смогу кудато в другое место отправить смс

Максим
01.08.2018
13:17:04
вот у меня например x = Foo.new и как тепер на этот x вызвать call

Roman
01.08.2018
13:17:06
и какая разница? я тем же обьектом не смогу кудато в другое место отправить смс
ну я и говорю, что обычно мне такое не надо, но если надо, то я меняю сервис. ничего такого в этом нет

Google
Максим
01.08.2018
13:17:32
но у тебя call это .self метод

Roman
01.08.2018
13:17:42
он и self и не self

Максим
01.08.2018
13:18:01
короче хз повторение и типа видишь у други разрабов сразу вопросы а почему а зачем

Roman
01.08.2018
13:18:10
почему не сделать сразу нормально?
потому что непонятно, что будет нужно в конструктор, а что в вызов

делать наперед не имея требований - тоже неправильно

Ilya
01.08.2018
13:18:19
и как впечатления? все ок? были какие-то косяки?
он порой падает) два раза за 3 месяца было такое. а так в целом ок. только там еще гемор со сборками у мобильщиков. они должны знать где тест а где прод окружение. иначе onesignal будет выдавать mismatched environment и пуши приходить не будут. там либо руками править окружение плееров, либо в АПИ у себя выносить чтоб условный админ мог править. Апишка там суперлегкая. Есть гем для работы с этим. там еще минус что он к телефону привязывает юзера у себя в базе. то есть ты на дев и прод окружении будешь иметь 2 юзера с одним и тем же телефоном. мне вот менеджер задачу кинул что у нее дублируются сообщения) она зарегана и там и там.

Roman
01.08.2018
13:18:20
YAGNI

Максим
01.08.2018
13:18:30
ну так ты и делаешь наперёд

Admin
ERROR: S client not available

Максим
01.08.2018
13:18:44
типа можно вполне обойтись без селф метода и жить себе

Roman
01.08.2018
13:18:46
неа, я делаю интерфейс

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

Ilya
01.08.2018
13:19:08
и как впечатления? все ок? были какие-то косяки?
это мелочи на самом деле. просто это неявно у них

Максим
01.08.2018
13:19:21
ну опять же смотри уже у двух разрабов возникли вопросы "почему" "зачем" значит какой то не интуитивно понятнй интерфейс выходит

Roman
01.08.2018
13:19:44
смотри, у тебя задача: сервис должен отправлять смс с текстом по номеру
самый прямой вариант это передать в конструктор всю инфу

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

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

Максим
01.08.2018
13:20:25
но теряется тогда переиспользуемость

Google
Roman
01.08.2018
13:20:46
дак прикол в том, что тебе возможно и не надо будет переиспользовать

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

Максим
01.08.2018
13:20:59
а какой тогда смысл отдельном классе

Roman
01.08.2018
13:21:00
поэтому зачем это делать?

отдельный класс для инкапсуляции логики и отделения

Максим
01.08.2018
13:21:19
яж не говорю всё наперёд

Tim
01.08.2018
13:21:24
проблема в том что у тебя класс слабый

Roman
01.08.2018
13:21:24
не вижу как это касается текущего обсуждения

Максим
01.08.2018
13:21:28
ну так а ещё отдельные классы для переиспользоания

Roman
01.08.2018
13:21:49
это где такое написано?

Roman
01.08.2018
13:22:11
ну и я могу переиспользовать конечно

для разных телефонов и месседжеей

нужно писать код под текущую задачу, а не под ту, которая может возникнуть

возникнет - переделаешь

ну понятно, что надо во всем без фанатизма

если это что-то очевидное, то да, можно и сразу

Максим
01.08.2018
13:23:41
я короче костноязычный

но таки считаю что делать self.call не стоит

сами придумайте почему

типа def self.call self.new.call end

Roman
01.08.2018
13:29:14
ну у каждого есть свое мнение =)

Tim
01.08.2018
13:30:01
ну еще такое мнение, если будешь делать говняно, то потом будет сложнее изменить под новые требования

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