Size: a a a

2021 February 18

DF

Denis Fakhrtdinov in pro.elixir
Ну вообще tuple modules были побочным эффектом параметризованных модулей.
источник

DF

Denis Fakhrtdinov in pro.elixir
Эти модули выпилили ещё в R16, и слава макаронам.
источник

DF

Denis Fakhrtdinov in pro.elixir
А tuple modules оставались ещё долго.
источник

DF

Denis Fakhrtdinov in pro.elixir
Впрочем, тебе ничего не мешает написать небольшой кусочек кода, который будет дёргать функцию из модуля по тегу рекорда.
источник

DF

Denis Fakhrtdinov in pro.elixir
Не так сахарно, конечно, но это будет работать.
источник

Е

Евгений in pro.elixir
Denis Fakhrtdinov
Впрочем, тебе ничего не мешает написать небольшой кусочек кода, который будет дёргать функцию из модуля по тегу рекорда.
Легко, да. Но структурой выглядит прикольней:

def foo(%module{} = m) do
 module.do_work(m)
end
источник

Е

Евгений in pro.elixir
Вот вам и получился типа полиморфизм для бедных :)
источник

DF

Denis Fakhrtdinov in pro.elixir
Почему для бедных?..
источник

DF

Denis Fakhrtdinov in pro.elixir
Можно написать парс_трансформ, который будет бегать на компайл-тайме что-то консолидировать, но зачем?
источник

Е

Евгений in pro.elixir
Denis Fakhrtdinov
Почему для бедных?..
Для богатых, это скрыто в компилере. Пишем просто m.do_work()
источник

DF

Denis Fakhrtdinov in pro.elixir
Я не то чтобы много кода на эликсире пощупал, но я нигде не видел использования протоколов, чтобы прям подивиться удачности решения.
источник

Е

Евгений in pro.elixir
Denis Fakhrtdinov
Я не то чтобы много кода на эликсире пощупал, но я нигде не видел использования протоколов, чтобы прям подивиться удачности решения.
Не знаю насколько удачно, но есть же всякие Enumerable, Inspect и так далее. Они на протоколах.
источник

LL

Lama Lover in pro.elixir
Denis Fakhrtdinov
Я не то чтобы много кода на эликсире пощупал, но я нигде не видел использования протоколов, чтобы прям подивиться удачности решения.
Jason.Encoder, по-моему, самый удачный
Ещё всякие Inspect.Algebra и Enumerable, позволяющий иметь ленивые коллекции типа Stream
источник

DF

Denis Fakhrtdinov in pro.elixir
Ну Jason.Encoder да, наверное, если у тебя структуры в глубину как марианская впадина.
источник

DF

Denis Fakhrtdinov in pro.elixir
Enumerable — хызы, я обычно знаю какого типа данные у меня приехали в данной конкретной строчке кода. Зачем мне тут протоколы непонятно.
источник

DF

Denis Fakhrtdinov in pro.elixir
Пытаюсь придумать куда применить Stream и почему он лучше чем lists:foldl, и не могу.
источник

DF

Denis Fakhrtdinov in pro.elixir
Как по мне весьма arguable.
источник

DF

Denis Fakhrtdinov in pro.elixir
Особенно с тем уровнем сложности и магии, которую протоколы приносят в систему.
источник

LL

Lama Lover in pro.elixir
Denis Fakhrtdinov
Пытаюсь придумать куда применить Stream и почему он лучше чем lists:foldl, и не могу.
Stream для ленивых коллекций
Типа открыл очень большой CSV файл (на 100500 гигабайтов) и можно на него любые трансформации вешать и работать с ним как с простой коллекцией, а Stream сам уже будет смотреть какими батчами подчитывать этот файл и всё такое
источник
2021 February 19

LL

Lama Lover in pro.elixir
Чат, хочу ещё раз поднять тему решений для авторизации: вот насколько вообще имеет смысл использовать какие-то сторонние готовые решения аля keycloak, когда можно самому просто хранить хэши паролей в постгре и реализовать 2FA с TOTP за пару часов?
источник