Size: a a a

2020 August 07

PG

Pig Greenest in pro.elixir
источник

МБ

Максим Барулин... in pro.elixir
Максим Барулин
во что развернётся такая конструкция? о_О
parser_options = [
     literal_encoder: &{:ok, {:__block__, &2, [&1]}},
     token_metadata: true
   ]
о как, нигде не встречал что так можно матчить
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Anastasiya Dyachenko
форматтер ухудшает читаемость, я не работала в проектах где он используется и скорее всего прост не буду 🤷‍♀️
Феникс генерирует идеально отформатированный по форматтеру код, можешь проверить
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Все благодаря такому конфигу
[
 import_deps: [:ecto, :phoenix],
 inputs: ["*.{ex,exs}", "priv/*/seeds.exs", "{config,lib,test}/**/*.{ex,exs}"],
 subdirectories: ["priv/*/migrations"]
]
источник

ŹR

Źmićer Rubinštejn in pro.elixir
И скобки в плаге не ставит
источник

AD

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

ŹR

Źmićer Rubinštejn in pro.elixir
Плаг просто есть не только в фениксе
источник

МБ

Максим Барулин... in pro.elixir
Там есть опция форматтера, можно добавить плаг и он не будет лепить скобки locals_without_parens или что-то такое
источник

D

D in pro.elixir
Максим Барулин
Там есть опция форматтера, можно добавить плаг и он не будет лепить скобки locals_without_parens или что-то такое
да, я так макрос добавлял:

locals_without_parens = [
 # ExtendedRouter
 patch_put: 3,
 patch_put: 4
 # Bamboo
 assert_delivered_email: 1
]

[
 import_deps: [:ecto, :phoenix],
 inputs: ["*.{ex,exs}", "priv/*/seeds.exs", "{config,lib,test}/**/*.{ex,exs}"],
 subdirectories: ["priv/*/migrations"],
 locals_without_parens: locals_without_parens
]
источник

AD

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

было

someting
and something


стало

something and
  something
источник

AD

Anastasiya Dyachenko in pro.elixir
и вот это тоже имхо зря

было

first
|> second(fn ->
      ...
  end)
|> third(fn ->
      ...
  end)


стало

first
|> second(fn ->
  ...
end)
|> third(fn ->
  ...
end)
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Это такие мелочи, которые не влияют на читаемость в достаточной мере, чтобы пожертвовать удобством и CI code quality туллингом
источник
2020 August 09

VK

Vyacheslav Konovalov in pro.elixir
Михаил Варнавский
Всем привет! Подскажите пожалуйста, как на практике осуществляется подход Let it crash? Вот на примере :gen_tcp

{:ok, data} = :gen_tcp.recv(socket, 0)

Если вернулось {:error, :closed}, то необходимо завершить процесс. Это обрабатывается через case, например, или просто оставляется как есть? Типа "все равно упадет и процесс завершиться".
падение программы почти неизбежно, вместо того чтобы считать это критическим случаем при котором нормальная работа программы приостанавливается, падение процесса в ерланге считается событием ошибки при выполнении и есть механизм для восстания
источник

T

Tharin in pro.elixir
Źmićer Rubinštejn
Я вообще не понимаю логику людей, которые пытаются «не» пользоваться форматтером. Для чего? Чтобы прийти в другой проект и страдать? Или чтобы те кто приходит в ваш проект страдали?
т.е. ты не пользуешься им?
источник

Z

Z in pro.elixir
У меня сервис по работе с апи. Мне надо чтобы на сервере постоянно парсился json и сохранялся в базу. Проект на phoenix.

В целом только один вопрос - как правильно организовать код?
У меня сейчас есть один модуль по работе с апи, и два генсервера, один парсит список форумов, второй список тредов в форумах, и сохраняют в бд.

В этих генсерверах встречаются одни и те же методы, которые принимают данные и сохраняют в базу.

Как лучше их вынести? В отдельный модуль? Или сделать еще один генсервер для сохранения данных и отправлять сообщения ему?
источник

LL

Lama Lover in pro.elixir
Z
У меня сервис по работе с апи. Мне надо чтобы на сервере постоянно парсился json и сохранялся в базу. Проект на phoenix.

В целом только один вопрос - как правильно организовать код?
У меня сейчас есть один модуль по работе с апи, и два генсервера, один парсит список форумов, второй список тредов в форумах, и сохраняют в бд.

В этих генсерверах встречаются одни и те же методы, которые принимают данные и сохраняют в базу.

Как лучше их вынести? В отдельный модуль? Или сделать еще один генсервер для сохранения данных и отправлять сообщения ему?
Ничего не понятно, причём тут json и база?
Если у тебя у двух генсерверов повторяется код, то ничего страшного в этом нет.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Z
У меня сервис по работе с апи. Мне надо чтобы на сервере постоянно парсился json и сохранялся в базу. Проект на phoenix.

В целом только один вопрос - как правильно организовать код?
У меня сейчас есть один модуль по работе с апи, и два генсервера, один парсит список форумов, второй список тредов в форумах, и сохраняют в бд.

В этих генсерверах встречаются одни и те же методы, которые принимают данные и сохраняют в базу.

Как лучше их вынести? В отдельный модуль? Или сделать еще один генсервер для сохранения данных и отправлять сообщения ему?
источник

LL

Lama Lover in pro.elixir
Z
У меня сервис по работе с апи. Мне надо чтобы на сервере постоянно парсился json и сохранялся в базу. Проект на phoenix.

В целом только один вопрос - как правильно организовать код?
У меня сейчас есть один модуль по работе с апи, и два генсервера, один парсит список форумов, второй список тредов в форумах, и сохраняют в бд.

В этих генсерверах встречаются одни и те же методы, которые принимают данные и сохраняют в базу.

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

Z

Z in pro.elixir
Lama Lover
И вообще, генсерверы обычно нужны для того чтобы хранить какой-то стейт. Если генсерверы просто выполняют какую-то работу и не держат у себя стейт, то я бы посмотрел на какой-нибудь GenStage
А я думал, это agent для того чтобы хранить стейт. Genstage посмотрю, спасибо
источник

LL

Lama Lover in pro.elixir
Z
А я думал, это agent для того чтобы хранить стейт. Genstage посмотрю, спасибо
Agent это точно тот же генсервер, только похожий на классический актор в функциональном языке
источник