Size: a a a

2020 April 23

LL

Lama Lover in pro.elixir
Roman Suleymanov
ну сам смотри, если используются встроенные типы и обычные предсказуемые операции над ними, то диалайзер правильно подскажет, но если у тебя какая структура получается в результате каких-то действий, то тут никто не подскажет тебе, что должно вернуться, для этого и пешется свой тип
Ну, это не совсем верно. Диалайзер в основном на тайпспеки и их сверяет. Можно вообще не объявлять типы, а всегда отчётливо писать тайпспеки
источник

RS

Roman Suleymanov in pro.elixir
тайпспеки это просто подсказки, что получаем и что отдаем, правильно написать их может только автор функции, который знает, что нужно вернуть)
источник

LL

Lama Lover in pro.elixir
Vyacheslav Konovalov
вот тайпспек бы протестировать
А как ты себе это представляешь?
Тайпспеки пишешь ты. Если ты пишешь что-то типа @spec f(any()) :: any() то это будет всегда верно (для арности один)
источник

LL

Lama Lover in pro.elixir
Я как-то раз делал валидатор типов. Ты просто объявляешь тип, а мой валидатор генерирует функцию, которая определяет принадлежность аргумента к данному типу и возвращает boolean()
Это прикольно, но практически абсолютно бесполезно
источник

VK

Vyacheslav Konovalov in pro.elixir
Lama Lover
А как ты себе это представляешь?
Тайпспеки пишешь ты. Если ты пишешь что-то типа @spec f(any()) :: any() то это будет всегда верно (для арности один)
ну да, этот спец всегда верный, очевидно
источник

LL

Lama Lover in pro.elixir
Vyacheslav Konovalov
ну да, этот спец всегда верный, очевидно
Так а как ты хочешь чтобы проводилось тестирование на спеки?
источник

RS

Roman Suleymanov in pro.elixir
а ещё, если есть doc у функции с примером, то dialyzer спеки даже не предлагает
источник

VK

Vyacheslav Konovalov in pro.elixir
Lama Lover
Так а как ты хочешь чтобы проводилось тестирование на спеки?
задать аргумент(ы) и проверить результат
источник

RS

Roman Suleymanov in pro.elixir
а чем это от обычного теста отличается?
источник

LL

Lama Lover in pro.elixir
Vyacheslav Konovalov
задать аргумент(ы) и проверить результат
т   т
е е
 с
т т
ы   ы
источник

RS

Roman Suleymanov in pro.elixir
тесты на тесты
источник

VK

Vyacheslav Konovalov in pro.elixir
😆
источник

RS

Roman Suleymanov in pro.elixir
пиши лучше doc и тесты, тайпспеки вообще можно не писать, а дока куда полезнее
источник

RS

Roman Suleymanov in pro.elixir
но это не точно
источник

VK

Vyacheslav Konovalov in pro.elixir
ок, спасибо
источник

LL

Lama Lover in pro.elixir
Я бы лучше писал спеки
Для юнит тестов - доктесты
Для других тестов - ExUnit
Если ты модный, то ESpec
источник

VK

Vyacheslav Konovalov in pro.elixir
тесты пишу, тайпспеки редко, а вот доки вообще никогда, эт конечно плохо
источник

RS

Roman Suleymanov in pro.elixir
прогоняй credo, dialyzer, дальше на твое усмотрение
источник

RS

Roman Suleymanov in pro.elixir
ещё форматер родной
источник
2020 April 24

BB

Boris Beginin in pro.elixir
Ребят мне нужен телнет клиент для эликсира
источник