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

rekero
12.12.2017
08:57:06

Максим
12.12.2017
08:57:13

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к фоловеров…видимо надо ходить и вбрасывать “всё плохо”, что бы люди обращали на тебя внимание)

Anton
12.12.2017
08:59:35

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

Максим
12.12.2017
08:59:38

Nikolay
12.12.2017
08:59:52

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 будут разные значения

Anton
12.12.2017
09:01:11

Максим
12.12.2017
09:01:18

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

rekero
12.12.2017
09:01:59

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

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

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

Nikolay
12.12.2017
09:06:02

Anton
12.12.2017
09:06:16

rekero
12.12.2017
09:06:18

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
без моков хуёков

pny
12.12.2017
09:08:04

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
хм

rekero
12.12.2017
09:10:20

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
как у тебя питон(не пайтон) и раби(не руби) одновременно?

Anton
12.12.2017
09:11:44