185 похожих чатов

Хочу поделиться полугодовым опытом работы с asn.1 У нас теперь связь

сервера с домом пакуется в asn.1 и отсюда вытекают следующие ньюансы:

* схема шарится между 3 (если не 4) проектами
* всегда есть ситуация с разными версиями со всех сторон. Т.е. обеспечить синхронность версии схемы заведомо нельзя

Чем мы пользуемся?

* asn1 из Эрланга
* asn1c от @levwalkin


Как храним схему.

Некоторые держат схему в отдельном проекте. Мы пошли по другому пути и она лежит в флюссонике. Это мастер проект по схеме.
Из него она копируется руками в другие проекты.

Сначала схема обкатывается в ветке флюссоника, потом мержится в мастер и становится основной. В этот момент
флюссоник понимает, что часть его данных может домой не доехать и он может оттуда далеко не всё получить.

Флюссоники мы не сами обновляем, так что из дома мы понимаем, что часть данных может не доехать, так что старые
поля по сути нельзя депрекейтить, их надо как-то, но заполнить.

Не самый технологичный способ, но этого хватает.


Для работы с хедером в эрланге немного доработали ребар, чтобы он подкладывал .hrl в каталог src одноименного проекта.
Именно src чтобы оно не поехало случайно в сборку в паблик (в include).


Этот хедер спокойно включаем по всему проекту, структуры из asn1 (с их неудобным именованием) используем по проекту
без промежуточных прослоек.

Очень не хватает удобной валидации параметров на упаковке asn в эрланге: не сообщает, что ему не нравится, приходится
по стектрейсу смотреть, что именно хрустнуло.


После asn1c немного дошлифовываем скриптами сгенеренную сишечку, чтобы убрать лишние символы.

В целом всё на порядок удобнее протобафа, потому что инструменты уже здесь, из коробки и довольно стабильно работают.

1 ответов

13 просмотров

Зачем нужен протобаф?

Похожие вопросы

Обсуждают сегодня

зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Можно попросить небольшое ревью кода? Тут немнога, я ничего интереснее не придумал, чем написать аналог tree в качестве практики с cmake. https://github.com/hrimov/tree-unix/...
Andrew Hrimov
11
Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Но если Евгений и Алекс используют в боевых условиях, то почему нет? А ты как-то про бизнес больше задвигаешь, это имеет к разработке отношение, но все же этим больше другие л...
Keiman
5
Карта сайта