
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
но это не то, что говорил Антон

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
и ты все равно пойдешь править

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

Alex
01.08.2018
13:14:33

Roman
01.08.2018
13:15:03
new.call это не сразу же

Tim
01.08.2018
13:15:26

Максим
01.08.2018
13:15:44
теряется переиспользуемость

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

Tim
01.08.2018
13:17:43

Максим
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

Tim
01.08.2018
13:18:25

Максим
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
это где такое написано?

Alex
01.08.2018
13:22:01

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
ну еще такое мнение, если будешь делать говняно, то потом будет сложнее изменить под новые требования