Size: a a a

2021 March 30

B

Bogdan in pro.elixir
Bogdan
А как в graphql указать type у field который может быть и строкой и списком?
хотя наверное напрашивается новый field под это… тот который строка value а этот values.
источник

AD

Anastasiya Dyachenko in pro.elixir
Bogdan
хотя наверное напрашивается новый field под это… тот который строка value а этот values.
еще можно передавать всегда список, список из одного элемента или нескольких
источник

B

Bogdan in pro.elixir
Anastasiya Dyachenko
еще можно передавать всегда список, список из одного элемента или нескольких
Тоже вариант.
источник

B

Bogdan in pro.elixir
Вопрос интересует еще один, по поводу нейминга переменных)) Ну например.

user = %{id: 1, active: true}
updated_user = Map.put(user, :active, false)

……

Имеет ли смысл писать например updated_user или всеже лучше оставить просто user и там само по себе понятно, что он был updated?
источник

AD

Anastasiya Dyachenko in pro.elixir
Bogdan
Вопрос интересует еще один, по поводу нейминга переменных)) Ну например.

user = %{id: 1, active: true}
updated_user = Map.put(user, :active, false)

……

Имеет ли смысл писать например updated_user или всеже лучше оставить просто user и там само по себе понятно, что он был updated?
я обычно использую вариант с разными переменными когда нужно где-то после использовать первую переменную, в других случаях называю одинаково
источник

B

Bogdan in pro.elixir
Звучит логично.
источник

B

Bogdan in pro.elixir
Мне нравится такой вариант.
источник

AD

Aaron Delarge in pro.elixir
Bogdan
Звучит логично.
В таком случае ты будешь таскать некий стейт и мутировать его внутри функции. Это не очень явное поведение. Называй сущности тем, чем они являются. Ему, возможно, даже лучше быть не updated_user, а inactive_user, чтобы соответствовать сути
источник

AN

Alexey Novoselov in pro.elixir
Bogdan
Вопрос интересует еще один, по поводу нейминга переменных)) Ну например.

user = %{id: 1, active: true}
updated_user = Map.put(user, :active, false)

……

Имеет ли смысл писать например updated_user или всеже лучше оставить просто user и там само по себе понятно, что он был updated?
вообще эликсир-стайл тут будет:
user = 
 %{id: 1, active: true}
 |> Map.put(:active, false)

чем меньше переменных, тем понятнее код. И автоматически напрашивается сохранение в отдельную переменную под другим именем только когда нужно будет потом где-то еще использовать.
источник

B

Bogdan in pro.elixir
Alexey Novoselov
вообще эликсир-стайл тут будет:
user = 
 %{id: 1, active: true}
 |> Map.put(:active, false)

чем меньше переменных, тем понятнее код. И автоматически напрашивается сохранение в отдельную переменную под другим именем только когда нужно будет потом где-то еще использовать.
Я стараюсь пайпать всегда когда это возможно) но иногда не получается или выглядит громоздко. Например когда нужно выдернуть какие-то данные из вложенной мапы, со 2-3 уровня преобразовать и вставить их обратно в структуру.
источник

B

Bogdan in pro.elixir
a = %{…}
bd = Map.fetch!(a.b, :d) |> Enum.map(&(&1.name)
a = Map.put(a, :b, bd)
источник

B

Bogdan in pro.elixir
ну что-то такое примерно
источник

AD

Anastasiya Dyachenko in pro.elixir
Bogdan
Я стараюсь пайпать всегда когда это возможно) но иногда не получается или выглядит громоздко. Например когда нужно выдернуть какие-то данные из вложенной мапы, со 2-3 уровня преобразовать и вставить их обратно в структуру.
get_in/update_in в помощь)
источник

B

Bogdan in pro.elixir
Anastasiya Dyachenko
get_in/update_in в помощь)
Я их пользовал но потом забил почему-то))
источник

B

Bogdan in pro.elixir
Надо опять попробовать
источник

AD

Anastasiya Dyachenko in pro.elixir
Aaron Delarge
В таком случае ты будешь таскать некий стейт и мутировать его внутри функции. Это не очень явное поведение. Называй сущности тем, чем они являются. Ему, возможно, даже лучше быть не updated_user, а inactive_user, чтобы соответствовать сути
мутировать это сильно сказано конечно
источник

AD

Anastasiya Dyachenko in pro.elixir
по факту никакого отличия от разных переменных, кроме конкретно названия, под капотом не будет
источник

AN

Alexey Novoselov in pro.elixir
Aaron Delarge
В таком случае ты будешь таскать некий стейт и мутировать его внутри функции. Это не очень явное поведение. Называй сущности тем, чем они являются. Ему, возможно, даже лучше быть не updated_user, а inactive_user, чтобы соответствовать сути
написал бы что-то типо такого, но все равно какая-то дичь получается
def put() do
 %{a: %{b: %{d: needed_val}}} = a = %{...}
 Map.put(
   a,
   :b,
   Enum.map(needed_val, &(&1.name)
 )
end
источник

АО

Алексей Овчинников... in pro.elixir
Настя правильно заметила - лучше всего тут наверное будет update_in
источник

AN

Alexey Novoselov in pro.elixir
но в любом случае если делать через переменную, то смыслы разные и имена разные будут
источник