
Roman
01.08.2018
13:30:34
не спорю, но есть разные понятия "говняно"

Tim
01.08.2018
13:31:07
ну вот пихать в конструктор все что попало это говняно

Roman
01.08.2018
13:31:24
а если будешь делать все "правильно сразу" твой стартап обойдут те, кто сделал говняно, выпустил мвп, вышел на рынок, поднял инвестиции, набрал программистов и все переписал ?

Gleb
01.08.2018
13:31:43
ее истинный рельсвей

Google

Roman
01.08.2018
13:31:53
ну это утрировано конечно

Tim
01.08.2018
13:32:17

Roman
01.08.2018
13:32:24
спорно угу

Anton
01.08.2018
13:32:38
есть
не, нету. я говорю сугубо по собственному опыту и опыту людей вокруг себя. это вполне может быть не верно

Максим
01.08.2018
13:32:51

Anton
01.08.2018
13:33:04

Roman
01.08.2018
13:33:13

Tim
01.08.2018
13:33:31

Roman
01.08.2018
13:33:40
например в одной стране twilio а в другой не твилио?

Anton
01.08.2018
13:33:42

Roman
01.08.2018
13:33:45
далаадно

Anton
01.08.2018
13:34:02

Google

Tim
01.08.2018
13:34:18

Roman
01.08.2018
13:34:35
это все понятно, повторяю вопрос: что если адаптер зависит от реквеста

Максим
01.08.2018
13:34:38
мб сделать класс который решает какой адаптер использовать в зависимости от юзера
и его передавать как контекст

Tim
01.08.2018
13:34:51

Roman
01.08.2018
13:34:51

Максим
01.08.2018
13:34:51
ну его результат

Anton
01.08.2018
13:34:54
например в одной стране twilio а в другой не твилио?
ок, тогда вот так
phone = Phone.new(twilio_adapter_builder: twilio_adapter_builder, logger: logger)
phone.send_sms(user1,b)
phone.send_sms(user2,d)
# ....
twilio_adapter = twilio_adapter_builder.call(user)
twilio_adapter.call(b)

Tim
01.08.2018
13:34:58

Антон
01.08.2018
13:35:12

Roman
01.08.2018
13:35:39
TwilioPhone.new
и будет у тебя миллион классов TwilioPhone, HuilioPhone еще чота
не классов, переменных

Максим
01.08.2018
13:35:51
или один билдер

Tim
01.08.2018
13:35:55
классов
ну и че

Максим
01.08.2018
13:36:01
решающий какой адаптер использовать

Tim
01.08.2018
13:36:02
че дальше то
за ооп и двор стреляю в упор

Roman
01.08.2018
13:36:25
дак я сам за ооп, но это не имеет ничего общего с ооп

Tim
01.08.2018
13:36:26

Google

Roman
01.08.2018
13:36:32
ну по факту классов да

Максим
01.08.2018
13:36:33
ухххх жара

Tim
01.08.2018
13:36:33
имеет

Anton
01.08.2018
13:36:35
Вголосину
ну, ты смеешься, а порой идеи из джавы спасают

Roman
01.08.2018
13:37:29
та понятно, что это шутки про ProblemFactory
но про уровни абстракции тоже есть высказывание, что нет такой проблемы, которую бы не решил новый уровень абстракции, кроме проблема слишком большого количества абстракций
да, я знаю, что например по open-close принципу надо сходу делать TwilioPhone
чтобы потом если надо добавить еще один тип телефона - просто создал еще один класс и усё

Tim
01.08.2018
13:39:01
я думаю неправильные абстракции больше дамажат чем большое число абстракций

Максим
01.08.2018
13:39:04
мне кажется большого количества абстракций не бывает, важно чтоб этот уровень был "гладким"

Roman
01.08.2018
13:39:14
неправильная абстракция безусловно вредит

Roman
01.08.2018
13:39:31
но правильная абстракция, которая не нужна, тоже вредит
найти баланс - задача разработчика

Tim
01.08.2018
13:39:52

Roman
01.08.2018
13:40:07
ну так вот TwilioPhone не нужен, пока у тебя только twilio
а потом вдруг резко становится нужен, потому что добавили требование

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

Roman
01.08.2018
13:40:26
и вот оно из "неправильной" становится "правильной"

Google

Tim
01.08.2018
13:41:07

Roman
01.08.2018
13:41:08
ну то есть есть конечно идеальный код с единорогами и бабочками, но я такого еще не писал и ни у кого сходу не видел

Tim
01.08.2018
13:42:17

Anton
01.08.2018
13:42:19

Tim
01.08.2018
13:42:19
))
возвращаемся

Roman
01.08.2018
13:42:24

Anton
01.08.2018
13:42:34
воооот
потому что ягни переоценено

Roman
01.08.2018
13:42:42

Admin
ERROR: S client not available

Roman
01.08.2018
13:42:48

Anton
01.08.2018
13:42:56

Roman
01.08.2018
13:42:59
ну короче это ясное дело, что нельзя написать правила под все

Tim
01.08.2018
13:43:11

Roman
01.08.2018
13:43:24
define "сложно"?

Максим
01.08.2018
13:43:37
ну это когда начинаются вопросы а зачем а почему
и нет тестов

Roman
01.08.2018
13:43:49
ваще нет

Google

Максим
01.08.2018
13:43:58
как рефакторить тогда

Roman
01.08.2018
13:44:00
у меня может быть отличное покрытие на говняную архитектуру

Ilya
01.08.2018
13:44:05
сегодня ударный день для чатика)

Anton
01.08.2018
13:44:12

Roman
01.08.2018
13:44:16
но для того чтобы сделать какоето изменение мне надо переписать пол-проекта

Максим
01.08.2018
13:44:39
но ты всегда будешь знать что сломал когда есть тесты

Roman
01.08.2018
13:44:49
конечно

Максим
01.08.2018
13:44:50
и если вопросов а зачем а почему нет то у тебя дефакто норм архитектура

Roman
01.08.2018
13:44:55
это сделает работу гораздо проще

Максим
01.08.2018
13:45:15
ну я прикинул два критерия

Roman
01.08.2018
13:45:15
тут все утверждения надо уточнять

Anton
01.08.2018
13:45:25

Максим
01.08.2018
13:45:25
типа если они соблюдены то сложно менять

Roman
01.08.2018
13:45:31
у человека, только что пришедшего на проект всегда будут вопросы
каку бы архитектуру ты ни выбрал

Максим
01.08.2018
13:45:47

Tim
01.08.2018
13:46:21

Roman
01.08.2018
13:46:28
а чо юнит?
e2e

Tim
01.08.2018
13:46:41
и даже интеграционным

Максим
01.08.2018
13:47:08
я считаю что если архитектура хорошая то не будет вопросов по коду касающихся реализации после гебольшого брифа