@proelixir

Страница 834 из 1045
Kioshimafx
25.12.2017
08:45:50
ну или можно иможно исходники почитать что там вообще используется конкретно в Plug ? https://github.com/elixir-plug/plug/blob/bd8ddf763421b3e0316d3ec513f29e8df8569874/lib/plug/crypto/message_encryptor.ex#L55

Evgeny
25.12.2017
09:04:11
а так если вас интересует именно вопрос криптографии то лучше на эту тему хорошие книжки почитать, а не в чатиках спрашивать ))
Кишки меня не особо интересуют в данный момент. Скорее мне нужно знать что пихать в эти поля.

Насколько я понял можно даже два одинаковых ключа засунуть

Буду делать как в примерах

Google
Kioshimafx
25.12.2017
09:05:21
ну посмотри там в исходниках пример даже есть

ага

Evgeny
25.12.2017
09:49:21
Еще вопрос, насколько обязательным является написание спеков к функциям?

Оно понятно, что необязательно, но как это принято вообще?

Evgeny
25.12.2017
09:51:05
ко всем вообще или есть какие-то правила?

Alexey
25.12.2017
09:51:22
public функции

Evgeny
25.12.2017
09:51:41
а то я привык к статической типизации и для меня это выглядит немного диковато

читаю https://hexdocs.pm/elixir/typespecs.html#content и не нахожу типа для string и для map.

а, для мапы нашел

если моя функция возвращает структуру HTTPoison.Response, то как это правильно в спеках записать?

так? @spec foo() :: HTTPoison.Response.t

Dmitry
25.12.2017
10:10:05
так? @spec foo() :: HTTPoison.Response.t
Посмотри спек к httpoison.request

Google
Evgeny
25.12.2017
10:10:25
Там есть тип t()

Dmitry
25.12.2017
10:10:28
А у строки есть String.t

Evgeny
25.12.2017
10:11:13
то есть просто @spec foo(param :: string) :: string не проканает?

Dmitry
25.12.2017
10:11:26
string нету

Evgeny
25.12.2017
10:12:16
то есть надо писать param :: String.t? Чо-та как-та многословно

Dmitry
25.12.2017
10:12:38
На букву длиннее чем string?

Да, это главная проблема эликсира

Evgeny
25.12.2017
10:12:50
на две

вообще, эликсир и правда многословен

Alex
25.12.2017
10:13:23
можно вроде не писать param

Evgeny
25.12.2017
10:13:27
по сравнению с D

можно не писать

Dmitry
25.12.2017
10:13:37
Надо понимать, что map существует как структура данных, а string - нет

Нету такого в Beam

Все очень просто

Evgeny
25.12.2017
10:13:59
ну есть де binary

Alex
25.12.2017
10:14:04
строка в эликсире = binary

Dmitry
25.12.2017
10:14:07
Ну так пиши binary

عاصم بن حارث
25.12.2017
10:14:23
по сравнению с D
пиши коротЕнько на Дэ и не растекайса патокой на эликсире, кто-ж неволит-то )))

Alexey
25.12.2017
10:14:32
iex(3)> t String @type t() :: binary() @type codepoint() :: t() @type grapheme() :: t() @type pattern() :: t() | [t()] | :binary.cp()

Google
Alex
25.12.2017
10:14:34
String.t это умеренно бессмысленный алиас

Dmitry
25.12.2017
10:14:41
В отличие от бинари, строка - валидный последовательность юникода

И в этом ее смысл

Alex
25.12.2017
10:14:52
бред

عاصم بن حارث
25.12.2017
10:15:11
Alex
25.12.2017
10:15:23
вот этот констрейнт на валидность юникода никем не гарантируется

Alexey
25.12.2017
10:15:28
тогда пишите на F#

Evgeny
25.12.2017
10:15:46
ну а что принято у эликсиристов писать в случае строки?

кто во что горазд, что-ли?

Dmitry
25.12.2017
10:16:02
Спеки вообще ничего не гарантируют

Смысл в порядке

Alex
25.12.2017
10:16:16
нет никакого порядка

Dmitry
25.12.2017
10:16:16
И он соблюдается в этих случаях

И помогает людям, которые документируют свой код отличать raw из ком порта от юникод строк

Evgeny
25.12.2017
10:16:45
Спеки вообще ничего не гарантируют
ну есть вроде некие анализаторы, которые помогают ошибки типизации находить, пусть не все, но лучше, чем ничего

Ну вы меня запутали, забить ваще на эти спеки? :)

Alex
25.12.2017
10:17:21
есть только реальный мир, и тебе даже в json третья сторона может вместо строки пихнуть что-то такое, от чего охуеет весь код

Evgeny
25.12.2017
10:17:26
я же не публичную либу пишу :)

Google
Alex
25.12.2017
10:17:42
если тебе так удобнее - пиши

عاصم بن حارث
25.12.2017
10:17:59
Ну вы меня запутали, забить ваще на эти спеки? :)
диалайзеру спеки в помощь. Прогоняешь через него свой кодецЪ-то, не? )))

Evgeny
25.12.2017
10:18:15
я хз как мне удобнее, я же нуль в эликсире, пытаюсь чужой опыт экспроприировать

Dmitry
25.12.2017
10:18:22
Не несут смысловой нагрузки, нужны только чтобы поспорить. Поэтому продолжать не вижу смысла

Evgeny
25.12.2017
10:19:31
Alex
25.12.2017
10:19:53
его нужно просто запускать

Evgeny
25.12.2017
10:20:11
ну оно понятно, что наверное просто подымается

Admin
ERROR: S client not available

Alex
25.12.2017
10:20:12
или не запускать, если нет спеков

عاصم بن حارث
25.12.2017
10:20:22
не, я пока не умею диалайзер, вот задумался
полезный инструмен. я plt генерирую на любой более-менее объемный прожект. )))

Alexey
25.12.2017
10:21:24
а чего, без спеков диалайзер ничего не сможет сказать?

Alex
25.12.2017
10:21:29
может

عاصم بن حارث
25.12.2017
10:21:36
его нужно просто запускать
маны перед запуском уж одним глазком взглянуть, ну очень рекомендуется )))

Alex
25.12.2017
10:21:37
но не то, чего ты ожидаешь

Evgeny
25.12.2017
10:21:47
хех

Vladimir
25.12.2017
10:21:55
Диалайзер отлично работает для Эрланга. А вот как только встречается косяк в макросе эликсира - всё, приехали.

но имхо лучше иметь спеки, чем не иметь.

Google
Evgeny
25.12.2017
10:23:30
ну тогда попробую на днях

عاصم بن حارث
25.12.2017
10:23:46
Лучше день потерять, зато за 5 мин. долететь (с) м\ф "Крылья, ноги, хвосты."

Evgeny
25.12.2017
10:24:01
я гребаный перфекционист и буду страдать если половина функций будет без спеков, а половина с ними

диалайзер умеет "незаспеченные" функции выявлять и списочек предъявлять?

عاصم بن حارث
25.12.2017
10:24:30
Спеки, строки док-ции, юнит-тесты... Делай в процессе и заблаговременно...

Evgeny
25.12.2017
10:24:57
юнит-тесты - это я вроде уже делаю

عاصم بن حارث
25.12.2017
10:25:23
и не откладывай на потом ))) "нет ничего более постоянного, чем временное!"

??

Evgeny
25.12.2017
10:26:53
надо бац-бац и в продакшен, а тут спеки пиши понимаешь-ли :)

عاصم بن حارث
25.12.2017
10:27:15
???

Evgeny
25.12.2017
10:27:49
так весело когда оно само компиляет и релоадит модули, и так грустно без статической типизации, а иногда наоборот весело

нет в мире совершенства, мечусь между D и эликсиром, но походу последний таки победит

Alexey
25.12.2017
10:28:36
диалайзер умеет "незаспеченные" функции выявлять и списочек предъявлять?
Credo умеет: https://github.com/rrrene/credo/blob/fa4c532b92f8e58547c0378fd71af2b96c5e6923/lib/credo/check/readability/specs.ex

Evgeny
25.12.2017
10:29:21
кредо - это конкурент диалайзера?

скажите мне еще, что надо и то и другой йузать

عاصم بن حارث
25.12.2017
10:29:38
Evgeny
25.12.2017
10:29:49
ну накуй эти скобощки

عاصم بن حارث
25.12.2017
10:29:58
Alex
25.12.2017
10:30:37
ну накуй эти скобощки
ну и зря, эликсир очень страдает от наличия в нем синтаксиса

Страница 834 из 1045