Size: a a a

2020 September 12

V

Vladimir in ErlangRus
)
источник

ИИ

Иванов Иванов... in ErlangRus
а как диалайзер в таком случае помогает? он прям выискивает в коде установку такого свойства?
источник

V

Vladimir in ErlangRus
Иванов Иванов
а как диалайзер в таком случае помогает? он прям выискивает в коде установку такого свойства?
Да, он пишет, что тип не соответствует при попытке использовать необъявленный ключ
источник

ИИ

Иванов Иванов... in ErlangRus
Vladimir
Да, он пишет, что тип не соответствует при попытке использовать необъявленный ключ
норм.
источник

ML

Maksim Lapshin in ErlangRus
Vladimir
Я с мапами через деструктуризацию стараюсь работать чтобы диалайзер валидировал. Предварительно объявляю их как типы. Таким образом получаются строгие по типу мапы
dialyzer ...

я даже не знаю с какого конца он запускается =(
источник

PK

Petr Kozorezov in ErlangRus
Maksim Lapshin
не, у меня другая мысль: вот пришла map из одного модуля в другой и её надо провалидировать.

Map, потому что это удобнее чем структурами обмениваться и хедерами (наверное?). Да и рекорды тоже надо валидировать
Ну внутри эрланга, имхо, проще эрланговыми средствами работать.
источник

V

Vladimir in ErlangRus
Maksim Lapshin
dialyzer ...

я даже не знаю с какого конца он запускается =(
По мне так он делает достаточно, чтобы не напрягаться с дин типизацией (если сразу писать с прицелом под него). Типы-суммы (float() | none) делают код более строгим, чем у статически типизированных языков без null-safety типа java, go. ну, это понятные вещи
источник

ML

Maksim Lapshin in ErlangRus
Petr Kozorezov
Ну внутри эрланга, имхо, проще эрланговыми средствами работать.
Какими? Какой инструмент может из одного описания выдать наружу жсон схему и валидатор для кишков?
источник

ML

Maksim Lapshin in ErlangRus
Vladimir
По мне так он делает достаточно, чтобы не напрягаться с дин типизацией (если сразу писать с прицелом под него). Типы-суммы (float() | none) делают код более строгим, чем у статически типизированных языков без null-safety типа java, go. ну, это понятные вещи
Да, я очень давно слышал как хорошо с ним, но мы не внедрили его
источник

PK

Petr Kozorezov in ErlangRus
Ну статический диалайзером, тут полностью согласен с @nordborn, а динамически из готового я видел только sheriff от Лоика, хотя сделать такой (как ты описываешь для мап) валидатор очень не сложно. Лично я обычно такие штуки в рамках проекта пишу под конкретную задачу. Это позволяет максимально просто, гибко и эффективно решить задачу.
источник

ML

Maksim Lapshin in ErlangRus
Petr Kozorezov
Ну статический диалайзером, тут полностью согласен с @nordborn, а динамически из готового я видел только sheriff от Лоика, хотя сделать такой (как ты описываешь для мап) валидатор очень не сложно. Лично я обычно такие штуки в рамках проекта пишу под конкретную задачу. Это позволяет максимально просто, гибко и эффективно решить задачу.
кстати, похоже на то, что я хочу
источник

ML

Maksim Lapshin in ErlangRus
кстати, а насколько вообще матчится protobuf (к которому я привязался как к чему-то современному и стандартному) и система типов эрланга? Может быть на базовом уровне они похожи и взаимозаменяемы?
источник

LW

Lev Walkin in ErlangRus
Maksim Lapshin
кстати, а насколько вообще матчится protobuf (к которому я привязался как к чему-то современному и стандартному) и система типов эрланга? Может быть на базовом уровне они похожи и взаимозаменяемы?
похоже, да, но не взаимозаменяемо, ибо тэги.
источник

ML

Maksim Lapshin in ErlangRus
Lev Walkin
похоже, да, но не взаимозаменяемо, ибо тэги.
теги у кого из них?
источник

LW

Lev Walkin in ErlangRus
Maksim Lapshin
теги у кого из них?
у протобафа для каждого элемента структуры определен предваряющий его тэг (1, 2, 3). Не зная тэга, ты из эрлангового типа не породишь протобаф,  соответствующий схеме.
источник

ML

Maksim Lapshin in ErlangRus
Lev Walkin
у протобафа для каждого элемента структуры определен предваряющий его тэг (1, 2, 3). Не зная тэга, ты из эрлангового типа не породишь протобаф,  соответствующий схеме.
я правильно тебя понимаю, что речь о том, что:

message VideoFrame {
 int64 dts;
}


и тут для VdeoFrame.dts появится число 1, которое я не смогу угадать из

record VideoFrame {
 dts :: integer()
}

?
источник

T

Tharin in ErlangRus
Иванов Иванов
раст как и эликсир штука прикольная, но ненужная
Ну.. вопрос спорный.
источник

ИИ

Иванов Иванов... in ErlangRus
Tharin
Ну.. вопрос спорный.
это субъективно, спорить вообще не обязательно. время покажет
источник

LW

Lev Walkin in ErlangRus
Maksim Lapshin
я правильно тебя понимаю, что речь о том, что:

message VideoFrame {
 int64 dts;
}


и тут для VdeoFrame.dts появится число 1, которое я не смогу угадать из

record VideoFrame {
 dts :: integer()
}

?
да
источник

V

Vladimir in ErlangRus
Еще Avro можно посмотреть. Тоже бинарный. Гугл его для BigQuery использует. Тарантул его использует. И вообще его хвалят. https://avro.apache.org/docs/current/
источник