Size: a a a

2019 July 14

AB

Alexey Bolshakov in pro.elixir
это два разных пути
источник

AB

Alexey Bolshakov in pro.elixir
в многих либах есть и encode и encode!
первый даст {:ok, blabla} or {:error, reason},
второй в чистом виде blabla или экзепшен
источник

AB

Alexey Bolshakov in pro.elixir
первый вариант чтобы программировать в railway стиле
источник

AB

Alexey Bolshakov in pro.elixir
второй чтобы pipe'ы строить
источник

AB

Alexey Bolshakov in pro.elixir
источник

V

V in pro.elixir
За статью спасибо. А в чём разница между railway- и pipe- стилями?
источник

V

V in pro.elixir
И вопрос больше про конкретный кейс - валидацию аргумента по регулярке. Как это обычно делается? Через guard? Через if-конструкцию в начале метода? Через проверку по регулярке в начале метода с бросанием эксепшна?
источник

AB

Alexey Bolshakov in pro.elixir
ну если ты какую-то библиотеку делаешь, которая, к примеру, енкодит что-то, и это в pipe часто используется, то через  exception
источник

AB

Alexey Bolshakov in pro.elixir
хотя, на самом деле часто в библиотеках есть и то и другое
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Зависит от «уровня» аргумента. Если это low level то можно exception.
Если бизнес логика - то error tuple
источник

V

V in pro.elixir
Понятно, т.е. эксепшны в целом приемлимы.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Exception это exception
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Если тебе пользователь прислал из поля email строчку без @ - это не exception
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Exception это когда из базы данных из integer поля пришла строка
источник

SZ

Stanislav Zaleski in pro.elixir
Подскажите пожалуйста почему parent супервайзер оно крэшится после трех рестартов child супервайзера
https://gist.github.com/sigmaray/f7f96624ca2a2f44d60a953714471bf5
источник

SZ

Stanislav Zaleski in pro.elixir
try-catch я могу написать, но не хочу, хочу попробовать “Let it fail”
источник

SZ

Stanislav Zaleski in pro.elixir
Запускаю через mix run priv/repo/fetcher.exs
Знаю что лучше прописывать в application, но тоже не хочу. Хочу попробовать на escript писать.
источник

SZ

Stanislav Zaleski in pro.elixir
В идеале хотелось бы чтобы оно бесконечно перезапускалось, а не сдыхало после трех перезапусков. Чего ж оно сдыхает, не понимаю
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Если падает слишком часто - тогда супервизор умирает
источник

ŹR

Źmićer Rubinštejn in pro.elixir
3 раза за 5 секунд по дефолту вроде
источник