Size: a a a

2020 May 12

ŹR

Źmićer Rubinštejn in pro.elixir
Я бы все | поменял бы на функции - уменьшилось бы в 10 тыщ раз весь код
источник

T

Tharin in pro.elixir
Źmićer Rubinštejn
    Enum.reduce(
     items,
     %BlackFriday.Order{owner: owner},
     fn %BlackFriday.Product{code: code} = item,
        %BlackFriday.Order{items: items, total: total} = order ->
       code
       |> rules()
       |> Enum.reduce(
         %BlackFriday.Order{
           order
           | items: [item | items],
             total: Money.add!(total, item.price)
         },
         fn rule, acc ->
           if rule.applicable?(item),
             do: %BlackFriday.Order{
               acc
               | total:
                   rule.apply!(%BlackFriday.Order{
                     acc
                     | items: Enum.filter(acc.items, &(&1.code == item.code))
                   })
             },
             else: acc
         end
       )
     end
   )


Если такой код называется вылизанным то ну его нахер
а как это читать?) читаю, и у меня флешбеки из реакта с его функциями на 400 строк
источник

T

Tharin in pro.elixir
я всем тем, кто такие массивные штуки делает, рекомендую всегда книгу Confident Ruby
источник

AD

Anastasiya Dyachenko in pro.elixir
Alex Bubnov
в общем случае - это не так. если у тебя gen_* или просто otp-compatible процесс - всё обновляется.
попробовала ручками обновить, обновился код, значит code reload чисто для обновления стейта
источник

T

Tharin in pro.elixir
хоть она и про Руби)
источник

T

Tharin in pro.elixir
но имхо, функция должна рассказывать какую-то историю) читаешь - и сразу понимаешь, о чём речь
источник

LL

Lama Lover in pro.elixir
Anastasiya Dyachenko
мб я не права, ребят кто еще знает обновляется или нет
gen_* обновляются когда они не работают и их message_queue пустая
источник

AD

Anastasiya Dyachenko in pro.elixir
Lama Lover
gen_* обновляются когда они не работают и их message_queue пустая
о спс, буду знать
источник

T

Tharin in pro.elixir
Lama Lover
gen_* обновляются когда они не работают и их message_queue пустая
вы про обновление кода после релиза?
источник

LL

Lama Lover in pro.elixir
Tharin
вы про обновление кода после релиза?
Про recompile
источник

T

Tharin in pro.elixir
это и хотел написать
источник

LL

Lama Lover in pro.elixir
Там же коллбек code_change имплементится в use GenServer
Я вчера рассказывал
источник

NB

Nikita Babushkin in pro.elixir
recompile в iex зовёт code change? Не знал
источник

LL

Lama Lover in pro.elixir
Ну, это генсервер
источник

LL

Lama Lover in pro.elixir
В gen_statem можно менять модуль на ходу
источник

LL

Lama Lover in pro.elixir
Без рекомпиляций и всего такого
источник

AB

Alex Bubnov in pro.elixir
Это другое (с)
источник

AB

Alex Bubnov in pro.elixir
На самом деле то же самое
источник

AD

Alexander Dudaev in pro.elixir
А как лучше безшовный деплой для бека сделать?
источник

AB

Alex Bubnov in pro.elixir
Как угодно, но лучше бы не апгрейдами релизов.
Проблемы всё равно будут не с кодом
источник