Size: a a a

2020 May 30

PG

Pig Greenest in pro.elixir
Плохо написал. Не вижу причин, почему бы это нельзя было сделать.
источник

DR

Dmitry Russ (Aleksan... in pro.elixir
Привет!

У меня вопрос, если в книге по Elixir-у используется вот такой стиль написания кода:

Bolt.Sips.query(Bolt.Sips.conn(), query.data, params) 
|> case do


Или вот такой:

"MATCH ()-[r:REL_TYPE]->() RETURN r" |> cypher!


Как вы думаете - это окей или стоит предложить не перегибать палку с пайпами?

Мне прямо читать больно такой код, а когда я думаю, что это будут читать и перенимать, прямо немного страшно становиться.
источник

DR

Dmitry Russ (Aleksan... in pro.elixir
В особенности пайпинг в case
источник

AD

Anastasiya Dyachenko in pro.elixir
Ты имеешь в виду что только один пайп?
источник

AD

Anastasiya Dyachenko in pro.elixir
Кстати на первый пример кредо бы написал что conn тоже надо передать через пайп
источник

AD

Anastasiya Dyachenko in pro.elixir
А сам по себе пайпинг в кейс это норм же
источник

DR

Dmitry Russ (Aleksan... in pro.elixir
Anastasiya Dyachenko
Ты имеешь в виду что только один пайп?
Да.
источник

AD

Anastasiya Dyachenko in pro.elixir
Dmitry Russ (Aleksandrov)
Да.
Ну кстати style guide говорит что один пайп не рекомендуется, так что да было бы круто чтобы в книге соответствовало https://github.com/christopheradams/elixir_style_guide#avoid-single-pipelines
источник

AD

Anastasiya Dyachenko in pro.elixir
И про первый аргумент пайпом там же чуть ниже
источник

Н

Никита in pro.elixir
А тут был опрос сколько человек пишут на Эликсире на работе?
источник

AP

Alexey Poimtsev in pro.elixir
Ребят, а кто-нибудь встречал библиотеку для работы с офисными файлами? Чтение и создание по шаблону
источник

DR

Dmitry Russ (Aleksan... in pro.elixir
Никита
А тут был опрос сколько человек пишут на Эликсире на работе?
Был где-то пару недель или месяц назад.
источник

Н

Никита in pro.elixir
Dmitry Russ (Aleksandrov)
Был где-то пару недель или месяц назад.
И какие результаты?
источник

LL

Lama Lover in pro.elixir
Dmitry Russ (Aleksandrov)
Привет!

У меня вопрос, если в книге по Elixir-у используется вот такой стиль написания кода:

Bolt.Sips.query(Bolt.Sips.conn(), query.data, params) 
|> case do


Или вот такой:

"MATCH ()-[r:REL_TYPE]->() RETURN r" |> cypher!


Как вы думаете - это окей или стоит предложить не перегибать палку с пайпами?

Мне прямо читать больно такой код, а когда я думаю, что это будут читать и перенимать, прямо немного страшно становиться.
Пайпить в case когда условие около 75 строк - это нормально, по-моему
А вот несколько пайпов в одну строку, мне кажется, плохо
Или когда вместо вызова просто пайп

Но это всё субъективно. Существующие стайлгайды мне не очень нравятся, а вот пилить свой личный мне как-то лень
источник

LL

Lama Lover in pro.elixir
Я вот, например, люблю писать что-то типа
with(
 {:ok, x1} <- f1(x),
 {:ok, x2} <- f2(x1)
) do


А стайлгайд такое запрещает
источник

LL

Lama Lover in pro.elixir
Źmićer Rubinštejn
Пишу на Эликсире за деньги
Анонимный опрос
46%
Фултайм
13%
Иногда, ищу такую работу
41%
Мечтаю об это
Проголосовало: 78
вот этот
источник

Н

Никита in pro.elixir
Lama Lover
вот этот
Супер. Спасибо)
источник

V

V in pro.elixir
Dmitry Russ (Aleksandrov)
Привет!

У меня вопрос, если в книге по Elixir-у используется вот такой стиль написания кода:

Bolt.Sips.query(Bolt.Sips.conn(), query.data, params) 
|> case do


Или вот такой:

"MATCH ()-[r:REL_TYPE]->() RETURN r" |> cypher!


Как вы думаете - это окей или стоит предложить не перегибать палку с пайпами?

Мне прямо читать больно такой код, а когда я думаю, что это будут читать и перенимать, прямо немного страшно становиться.
> Мне прямо читать больно такой код

Если видеть в пайпах data-flow - то норм

Bolt.Sips.conn()
|> Bolt.Sips.query(query.data, params)
|> case do ... end
|> Enum.map(...)
|> Enum.reduce(...)
|> итогдалие

С пониманием, что у тебя не должно быть не покрытых кейсами веток.
Из бонусов - можно воткнуть в середине пайпа IO.inspect или иную интроспекцию.
источник

AD

Anastasiya Dyachenko in pro.elixir
Lama Lover
вот этот
Год прошел уже, может новый замутить)
источник

DR

Dmitry Russ (Aleksan... in pro.elixir
V
> Мне прямо читать больно такой код

Если видеть в пайпах data-flow - то норм

Bolt.Sips.conn()
|> Bolt.Sips.query(query.data, params)
|> case do ... end
|> Enum.map(...)
|> Enum.reduce(...)
|> итогдалие

С пониманием, что у тебя не должно быть не покрытых кейсами веток.
Из бонусов - можно воткнуть в середине пайпа IO.inspect или иную интроспекцию.
А если вынести case в отдельную функцию и дать ей полезное имя, то data flow не станет разве сразу и понятнее и менее разорванным?
источник