@proRuby

Страница 969 из 1594
Максим
12.12.2017
08:54:26
вместо этого админ создаёт нового пользователя с другим паролем

как то ну не очень правильно звучит

ну конечно если я правильно понимаю

Vasiliy
12.12.2017
08:54:48
ты путаешь бд и код

Google
Anton
12.12.2017
08:55:05
админу надо поменять пароль пользователю
Это уже кейс завязанный на бд. Хотя есть имутабельные бд

Максим
12.12.2017
08:55:09
ну код работает с памятью, а хранится всё в бд

Vasiliy
12.12.2017
08:55:20
в коде просто отображение данных из бд

Максим
12.12.2017
08:55:33
типа не особо же важно с какой ячейкой памяти он работает в подобных задачах, разве нет?

Anton
12.12.2017
08:55:38
вместо этого админ создаёт нового пользователя с другим паролем
Ты можешь делать изменения как это делается в гите, например

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

Vasiliy
12.12.2017
08:55:56
как ячейки памяти с бд связаны?)

Anton
12.12.2017
08:55:59
Вот с бд ты так же можешь

Максим
12.12.2017
08:56:05
Ты можешь делать изменения как это делается в гите, например
но зачем мне хранить все предыдущие версии пользователя?

Vasiliy
12.12.2017
08:56:17
опять - ты бд с кодом путаешь

Anton
12.12.2017
08:56:37
но зачем мне хранить все предыдущие версии пользователя?
Да много кейсов есть когда это надо: Лог Тебе надо уметь возвращать состояния или как-то с ними работать

Максим
12.12.2017
08:56:39
как ячейки памяти с бд связаны?)
ну типа вот мы в коде взяли данные из бд, они хранятся теперь в ячейке памяти, разве нет? поменяли там чё как надо, сохранили обратно

Vasiliy
12.12.2017
08:56:58
ты можешь в коде по новой в памяти создавать хоть милиард юзером, а в бд писать то что действительно поменялось

Google
Anton
12.12.2017
08:57:15
Например, если у тебя есть ордер, я бы хотел хранить все изменения ордера, что бы потом показывать их или же просто дебажить

Максим
12.12.2017
08:57:32
Vasiliy
12.12.2017
08:57:42
почему ты её мусоришь? есть GC, если нет GC есть алгоритмы для очистки памяти

Максим
12.12.2017
08:57:52
ну типа вот как в рельсах

взяли пользователся, храним в @user

поработали с ним как надо поменяли чё захотели

@user.save

Alex
12.12.2017
08:58:41
ну вот чел тут утверждает что связные и даже обязательные и что по другому если то у тебя неправильное ооп
что такое ооп - не все до конца ясно, есть разные мнения то что мутабельность обязательно - это все таки идея из др оперы так или иначе иммутабельность это круто и я думаю в будущем мы все будем писать с иммутабельностью по дефолту и только иногда явно указывать что нам нужна именно мутабельность - как в хаскеле

Максим
12.12.2017
08:59:07
вот не совсем тоже понимаю почему таки иммутабельность это так круто

Nikolay
12.12.2017
08:59:26
я вот только не пойму откуда у чувака 15к фоловеров…видимо надо ходить и вбрасывать “всё плохо”, что бы люди обращали на тебя внимание)

Vasiliy
12.12.2017
08:59:38
@user.save
тут просто рельса сохраняет пользователя в @user а могла бы к примеру возвращать новый инстанс юзера, а старый оставлять тем же

Alex
12.12.2017
08:59:57
ну и зачем мусорить память?
чтобы лучше контроллировать измнения, чтобы флоу стейта был очевиднее - чтобы легче разбираться в коде и багах, чтобы писать более качественно

Максим
12.12.2017
09:00:05
ну разве очевиднее когда в update вызывается new?

Anton
12.12.2017
09:00:33
вот не совсем тоже понимаю почему таки иммутабельность это так круто
Вместо внутреннего изменения стейта объекта ты создаёшь новый с новым стейтом. Это позволяет избежать запутанности логики и все поведение становится более линейным

Google
Vasiliy
12.12.2017
09:00:35
и зачем возвращать новый если можно сохранит ьуже этот?
затем что ты явно берёшь измененого юзера и работаешь с ним

rekero
12.12.2017
09:00:54
не уверен что понял тебя
a = Repository::Email.new.find_by_id() Repository::Email.new.update() b = Repository::Email.new.find_by_id() у a и b будут разные значения

Vasiliy
12.12.2017
09:01:43
например смори у тебя есть юзер, ты знаешь что его др изменилось, сохрнаяешь юзера и после сохранения, если др валидно и сохранилось ты пишешь в лог изменение

rekero
12.12.2017
09:01:59
взяли пользователся, храним в @user
ну там ты рассматриваешь чисто активрекорд, который не очень

Vasiliy
12.12.2017
09:02:15
в случае иммутабельность у тебя юзер - неизменный объект и ты точно уверен что он это твои входные данне

rekero
12.12.2017
09:02:18
потом почистятся

Максим
12.12.2017
09:02:54
и в чем проблема?
я подумал что у тебя изначальный тезис был "можно менять не подгружая в память"

Alex
12.12.2017
09:02:59
Последний пункт мимо. Можно и с имутабельностью говно писать
Можно, но с таким ограничением у нас на одну возможность писать говно меньше

Vasiliy
12.12.2017
09:03:05
ебала наступает когда у тебя юзер через несколько вызовов функций проходит и что-т изменилось а ты в душе не ебёшь что там по пути мутировало его

rekero
12.12.2017
09:03:39
Anton
12.12.2017
09:03:51
Что в а будет?

Максим
12.12.2017
09:03:58
Alex
12.12.2017
09:04:06
Имутабельность это не очень круто в плане того, что ресурсов больше надо и сложнее оптимизировать такой кол
Ресурсов - ну кажется если это не микроконтроллеры то это не прям проблема. А вот оптимизация это да

Максим
12.12.2017
09:04:16
Что в а будет?
зависит от test

No
12.12.2017
09:04:23
иммутабельность - крутая шняга, но я бы не стал за неё сильно переживать

Vasiliy
12.12.2017
09:04:24
именно

Google
Vasiliy
12.12.2017
09:04:40
с иммутабельностью у тебя не зависит

Максим
12.12.2017
09:04:44
хм

Anton
12.12.2017
09:04:49
Ресурсов - ну кажется если это не микроконтроллеры то это не прям проблема. А вот оптимизация это да
Да не, тоже проблемно, особенно когда надо про микроконтроллеры думать

rekero
12.12.2017
09:04:51
but why why would i do that
так тебе только что объясняли

Nikolay
12.12.2017
09:04:53
но ведь можно писать код (на руби) не мутируя переменные ?

No
12.12.2017
09:04:55
за всё время я столкнулся может пару раз от силы с проблемами, когда что-то неожидано мутировалось

Anton
12.12.2017
09:05:10
зависит от test
Это неопределенность, а с имутабельностью, ты точно знаешь, что а будет 1

Vasiliy
12.12.2017
09:05:24
ну ессно что много от прогера зависит

Максим
12.12.2017
09:05:42
а это как то конкретно структурой языка достигается или чисто догооворённостью писать методы не мутирующие входной объект?

Vasiliy
12.12.2017
09:05:48
ну с иммутабельностью, судя по примерам которые я видал в разы проще тестить

Anton
12.12.2017
09:06:16
а это как то конкретно структурой языка достигается или чисто догооворённостью писать методы не мутирующие входной объект?
В некоторых языках ошибка выкидывается при попытке переписать переменную, в некоторых - договоренность

Vasiliy
12.12.2017
09:06:38
в руби да, удобно что ! методы есть

Anton
12.12.2017
09:06:39
ну с иммутабельностью, судя по примерам которые я видал в разы проще тестить
Это потому что уходит глобальный стейт и без него все становится в разы проще тестировать

Nikolay
12.12.2017
09:07:10
но почему же тогда самые популярные языки мира все ооп)

Vasiliy
12.12.2017
09:07:36
я туповат на счёт стейта шмейта, по мне удобно что ты просто вход выход тестишь

rekero
12.12.2017
09:07:44
в хаскелле - ошибку кинет

Vasiliy
12.12.2017
09:07:46
без моков хуёков

Google
Anton
12.12.2017
09:08:10
Особенно легко понять почему «имутабельность» лучше. Достаточно посмотреть на то, как тестируется либы с глобальным конфигом и с конфигом на уровне инициализации

в хаскелле - ошибку кинет
В Эрланген так же и во всяких мл

Vasiliy
12.12.2017
09:08:38
ооп большинство потому что проще вход и понимание т.к. можно абстрактные вещи связать с объектами реального мира

pny
12.12.2017
09:09:25
ООП это не про языки :(

Nikolay
12.12.2017
09:09:46
например?
это ты попробуй приведи пример фп языка популярного))

pny
12.12.2017
09:10:06
В чем критерий популярности?

Максим
12.12.2017
09:10:06
define популярный

Nikolay
12.12.2017
09:10:19
Anton
12.12.2017
09:10:19
хм

pny
12.12.2017
09:10:26
Раби

Anton
12.12.2017
09:10:26
спасибо за вопрос кстати

Nikolay
12.12.2017
09:10:33
эликсир
ппц уж популярный))

Anton
12.12.2017
09:10:39
походу надо написать огромный текст почему имутабельность в руби тащит

rekero
12.12.2017
09:10:41
даже на рубишных митапах про него рассказывают

шах и мат

Anton
12.12.2017
09:10:45
и почему мутировать все равно надо

Максим
12.12.2017
09:11:05
и почему мутировать все равно надо
а чёб тебе в секреты бекенда недельку не првоести

pny
12.12.2017
09:11:09
Питон, перл, раби - вполне себе фп языки ;)

Anton
12.12.2017
09:11:39
rekero
12.12.2017
09:11:39
как у тебя питон(не пайтон) и раби(не руби) одновременно?

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