Size: a a a

2020 May 12

BB

Boris Beginin 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
   )


Если такой код называется вылизанным то ну его нахер
оч сложно прочитать
источник

BB

Boris Beginin in pro.elixir
если мб вынести там ченить в функции
источник

BB

Boris Beginin in pro.elixir
может и не так плохо
источник

BB

Boris Beginin in pro.elixir
но вот в таком формате
источник

BB

Boris Beginin in pro.elixir
это конечно фигня
источник

AB

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

AD

Anastasiya Dyachenko in pro.elixir
ой я вижу if
источник

AD

Anastasiya Dyachenko in pro.elixir
все отказ
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Этот код просто пиздец
источник

AD

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

ŹR

Źmićer Rubinštejn in pro.elixir
6 уровней вложенности я насчитал
источник

AB

Alex Bubnov in pro.elixir
Źmićer Rubinštejn
Этот код просто пиздец
зато там есть dynamic supervisor, кастомный оператор на макросах и behaviour!
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Рубокоп говорит "иди нафик" если у тебя 3 уровня - по дефолту
источник

BB

Boris Beginin in pro.elixir
rule.applicable?(item)
источник

BB

Boris Beginin in pro.elixir
а это что вообще такое?
источник

BB

Boris Beginin in pro.elixir
типо rule это какой то модуль?
источник

BB

Boris Beginin in pro.elixir
или это ключ с функцией
источник

PG

Pig Greenest in pro.elixir
Źmićer Rubinštejn
6 уровней вложенности я насчитал
достаточно увидеть вложенный reduce
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Это модуль
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Pig Greenest
достаточно увидеть вложенный reduce
Я конечно бывает что так пишу иногда, но не на столько и точно не выложил бы это как пример хорошего кода
источник