Size: a a a

2020 February 28

V

V in pro.elixir
Котаны, как настроить автоформат кода чтобы было
with :a <- some_a,
    :b <- some_b
do
 blabla()
end
интересует именно расположение do.
Другой пример (тоже интересует расположение do с новой строки):
def blabla(long,
     long,
     params,
     ...)
   when blabla
do
 ...
end
источник

SM

Sergei Maximov in pro.elixir
V
Котаны, как настроить автоформат кода чтобы было
with :a <- some_a,
    :b <- some_b
do
 blabla()
end
интересует именно расположение do.
Другой пример (тоже интересует расположение do с новой строки):
def blabla(long,
     long,
     params,
     ...)
   when blabla
do
 ...
end
Никак
источник

AB

Alexey Bolshakov in pro.elixir
Sergei Maximov
Никак
никак не использовать автоформат )))
источник

SM

Sergei Maximov in pro.elixir
Alexey Bolshakov
никак не использовать автоформат )))
А мне норм
источник

V

V in pro.elixir
Alexey Bolshakov
никак не использовать автоформат )))
Это плохая идея
источник

LL

Lama Lover in pro.elixir
V
Это плохая идея
Я такое ручками делаю, потому что иногда так просто удобнее
Часто бывает что-то типа
def f(%{
 status: :ok,
 code: 200,
 body: body
}) do
 ...
end
источник

Е

Евгений in pro.elixir
Народ. У меня тут иногда транзакции в постгре падают с ошибкой сериализации. При этом Ecto.update выбрасывает эксепшн, а хотелось бы чтобы просто возвращало ошибку базы данных, чтобы можно было подождать рандомный промежуток и попробовать транзакцию еще раз. Неужели придется try do/rescue городить?
источник

LL

Lama Lover in pro.elixir
Евгений
Народ. У меня тут иногда транзакции в постгре падают с ошибкой сериализации. При этом Ecto.update выбрасывает эксепшн, а хотелось бы чтобы просто возвращало ошибку базы данных, чтобы можно было подождать рандомный промежуток и попробовать транзакцию еще раз. Неужели придется try do/rescue городить?
Погоди, ты делаешь Ecto.update(some_changeset) а он выкидывает ошибку?
источник

LL

Lama Lover in pro.elixir
Как она выглядит?
источник

Е

Евгений in pro.elixir
Lama Lover
Погоди, ты делаешь Ecto.update(some_changeset) а он выкидывает ошибку?
Да
источник

Е

Евгений in pro.elixir
Lama Lover
Как она выглядит?
Сама ошибка мне понятна, просто формат именно эксепшена немного удивляет. Сама ошибка это Postgrex.Error
источник

LL

Lama Lover in pro.elixir
Евгений
Сама ошибка мне понятна, просто формат именно эксепшена немного удивляет. Сама ошибка это Postgrex.Error
Так а почему ты ожидаешь, что ошибка сериализации починится через время?
источник

Е

Евгений in pro.elixir
Lama Lover
Так а почему ты ожидаешь, что ошибка сериализации починится через время?
Потому что она возникает при конфликте двух параллельно выполняющихся транзакций. Я поставил для них уровень изоляции serializable.
источник

Е

Евгений in pro.elixir
И да, немного подождать и попробовать еще раз выполнить проблемную транзакцию - одно из решений.
источник

LL

Lama Lover in pro.elixir
Евгений
Потому что она возникает при конфликте двух параллельно выполняющихся транзакций. Я поставил для них уровень изоляции serializable.
Я не вижу решения тогда, видимо придётся обернуть в try
источник

Е

Евгений in pro.elixir
Lama Lover
Я не вижу решения тогда, видимо придётся обернуть в try
Я пока так и сделал. Сам Postgrex вроде как возвращает ошибку, а не бросает исключение. Это уже заморочка Ecto
источник

LL

Lama Lover in pro.elixir
Евгений
Я пока так и сделал. Сам Postgrex вроде как возвращает ошибку, а не бросает исключение. Это уже заморочка Ecto
Ну шо, видимо придётся контрибутить в опенсорс
источник

Е

Евгений in pro.elixir
Lama Lover
Ну шо, видимо придётся контрибутить в опенсорс
Не, я не готов в экто контрибутить. Тем более непонятно как это сделать. Для контроля всяких уникальностей есть constraint-ы, а тут я даже не знаю. Возможно это не баг, а фича и, соответственно, нечего исправлять
источник

P

Pavel in pro.elixir
Так первый контрибушн - это issue
источник

P

Pavel in pro.elixir
update не должен кидать эксепшен, это делает update!
источник