Size: a a a

2020 January 08

PG

Pïg Grëënëst in pro.elixir
Źmićer Rubinštejn
Есть только один возможный ответ в этом чате:

Выкинуть эрланг, взять эликсир и ExUnit.
эликсирный экстремизм
источник

AU

Alexander Uljev in pro.elixir
Ребят, этический вопрос. Я думаю про два способа объяснить пользователю, что он неправильно использует мой код:
1. Поставить условие в заголовок функции. Если пользователь предает неправильный аргумент, то не выполняется ни одно условие и Эликсир скажет пользователю, что такой функции нет. Так можно писать код очень быстро, да и опытный человек быстро сообразит, что надо читать документацию. Плюс приучаем читать документацию.
2. Не ставить условий, брать любой аргумент и проверять его тип, а если не тот, то выдавать исключение. Так получается много дополнительных строк кода, но можно писать супер понятные исключения, что в Эликсире как капля воды в пустыне, плюс скорость в поиске ошибок.
А как это делаете вы?
источник

m

madeinussr in pro.elixir
1 = матчить + гарды, где это возможно, падать, если не сматчилось (ну, как в самом языке и сделано)
еще спеки добавляю
источник

МБ

Максим Барулин in pro.elixir
Alexander Uljev
Ребят, этический вопрос. Я думаю про два способа объяснить пользователю, что он неправильно использует мой код:
1. Поставить условие в заголовок функции. Если пользователь предает неправильный аргумент, то не выполняется ни одно условие и Эликсир скажет пользователю, что такой функции нет. Так можно писать код очень быстро, да и опытный человек быстро сообразит, что надо читать документацию. Плюс приучаем читать документацию.
2. Не ставить условий, брать любой аргумент и проверять его тип, а если не тот, то выдавать исключение. Так получается много дополнительных строк кода, но можно писать супер понятные исключения, что в Эликсире как капля воды в пустыне, плюс скорость в поиске ошибок.
А как это делаете вы?
Последняя функция ловит все типы аргументов и кидает exceptions
источник

AU

Alexander Uljev in pro.elixir
Максим Барулин
Последняя функция ловит все типы аргументов и кидает exceptions
Превосходная идея
источник

AU

Alexander Uljev in pro.elixir
Браво
источник

m

madeinussr in pro.elixir
эксепшен итак будет выкинут, если нет подходящей ф-ции
источник

m

madeinussr in pro.elixir
или нужен error message на кириллице?
источник

МБ

Максим Барулин in pro.elixir
Да, но в данном случае можно придать ему дополнительный смысл
источник

AU

Alexander Uljev in pro.elixir
Одно дело когда прилетает исключение "Ждал список, получил карту", другое "Такой функции нет"
источник

m

madeinussr in pro.elixir
ну, там будет немного не такой эксепшен
источник

AU

Alexander Uljev in pro.elixir
Я как новичёк в шоке от встроенных в Эликсир исключений
источник

m

madeinussr in pro.elixir
а будет что такая ф-ция есть, но не с такими аргументами
источник

AU

Alexander Uljev in pro.elixir
Он ни на что не указывает
источник

AU

Alexander Uljev in pro.elixir
Да не фига
источник

AU

Alexander Uljev in pro.elixir
Не могу сматчить - вот
источник

m

madeinussr in pro.elixir
кто он?
источник

AU

Alexander Uljev in pro.elixir
Эксепшен
источник

AU

Alexander Uljev in pro.elixir
То есть оно, исключение)
источник

AU

Alexander Uljev in pro.elixir
Ошибка есть, а что с ней делать?
источник