Size: a a a

2020 March 15

AK

Aleksey Kluchnikov in ErlangRus
Maksim Lapshin
Если ты хочешь подискутировать о том, что отсутствие валидирующего механизма лучше, чем его наличие и что «протестировать все» - проблема, то это мне выглядит странно.


Я могу разделять скепсис и недовольства конкретной штукой под названием протобуф, но в целом валидатор и жесткая схема интерфейса - вещь полезная и понятная.


Корба с ее idl возникла не на пустом месте.
Дело не в валидирующем механизме а в большой горе ограничений схем. Схемлес базы тоже не просто так родились. Но гораздо более серьезная проблема что протокольные типы становятся доступны внутри сервисов и становятся частью не только транспорта но и бизнес логики. Это такие гвозди которые прибивают все на мертво
источник

ML

Maksim Lapshin in ErlangRus
Aleksey Kluchnikov
Дело не в валидирующем механизме а в большой горе ограничений схем. Схемлес базы тоже не просто так родились. Но гораздо более серьезная проблема что протокольные типы становятся доступны внутри сервисов и становятся частью не только транспорта но и бизнес логики. Это такие гвозди которые прибивают все на мертво
ага, это понимаю и знаю о чем ты
источник

PG

Pïg Grëënëst in ErlangRus
Igor Karymov
Маркдаун и гитлаб
Зачем заставлять человека делать работу компьютера и выность метаинформацию из системы?
источник

AB

Alexey Bolshakov in ErlangRus
Maksim Lapshin
Наличие схемы должно избавлять от ситуации, когда один кусок системы обновился, а в другом об этом никто не знает и у них немного подглючивает
сорян, что влезаю. может что и не в тему, тк не все прочел. по поводу протоколов, мне уже в двух книжках попалось упоминание протокола Apache Avro, как протокола, который позволяет жить с частичным обновлением системы. если какие-то структуры меняются, то у них идет добавление полей в конце, таким образом, что старая часть со старой структурой сможет прочитать поля, которые были в старой версии. вроде бы и в protobuff при определенных условиях произойдет что-то около того.
источник

ML

Maksim Lapshin in ErlangRus
Alexey Bolshakov
сорян, что влезаю. может что и не в тему, тк не все прочел. по поводу протоколов, мне уже в двух книжках попалось упоминание протокола Apache Avro, как протокола, который позволяет жить с частичным обновлением системы. если какие-то структуры меняются, то у них идет добавление полей в конце, таким образом, что старая часть со старой структурой сможет прочитать поля, которые были в старой версии. вроде бы и в protobuff при определенных условиях произойдет что-то около того.
Это скорее ты про техническое обеспечение паттерна, который должен быть в голове у проектировщика: как обспечить обратную совместимость
источник

AB

Alexey Bolshakov in ErlangRus
ну, со схемой или без - у каждого варианта свои плюсы/минусы
источник

СИ

Сергей Иванов in ErlangRus
Alexey Bolshakov
сорян, что влезаю. может что и не в тему, тк не все прочел. по поводу протоколов, мне уже в двух книжках попалось упоминание протокола Apache Avro, как протокола, который позволяет жить с частичным обновлением системы. если какие-то структуры меняются, то у них идет добавление полей в конце, таким образом, что старая часть со старой структурой сможет прочитать поля, которые были в старой версии. вроде бы и в protobuff при определенных условиях произойдет что-то около того.
Строгая последовательность полей неважна да и вредна при наличии схемы. Это детали реализации. Или ты про схему?
источник

С

Саша in ErlangRus
в capnproto тоже к полям в явном виде добавляются метки порядка, которые нужны для обеспечения обратной совместимости
источник

IK

Igor Karymov in ErlangRus
Alexey Bolshakov
сорян, что влезаю. может что и не в тему, тк не все прочел. по поводу протоколов, мне уже в двух книжках попалось упоминание протокола Apache Avro, как протокола, который позволяет жить с частичным обновлением системы. если какие-то структуры меняются, то у них идет добавление полей в конце, таким образом, что старая часть со старой структурой сможет прочитать поля, которые были в старой версии. вроде бы и в protobuff при определенных условиях произойдет что-то около того.
В авро есть принципиальный момент, там отдельно есть схема писателя и читателя.
источник

A

Alexey in ErlangRus
От куда такое?
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Еще вопрос - в догонку прл бинари
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Разве в разных версиях эрланга не резные бимы получаются?
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Как тогда можно скомпилировать заранее что-то?
источник

VP

Vladimir Potapev in ErlangRus
Да, бимы разные.
источник

VP

Vladimir Potapev in ErlangRus
Ну может будут перегонять не в BEAM, а в какой-нить GraalVM/LLVM-based байткод. :)
источник

IK

Igor Karymov in ErlangRus
Байткод меняется относительно редко емнип
источник

AK

Aleksey Kluchnikov in ErlangRus
Źmićer Rubinštejn
Как тогда можно скомпилировать заранее что-то?
Компилишь под окружение. Оно так с любыми бинарями
источник

AK

Aleksey Kluchnikov in ErlangRus
там не версия эрланга важна а версия libc если мне память не изменяет
источник

IK

Igor Karymov in ErlangRus
Можно погуглить на эту тему, вроде в рамках мажорного релиза гарантирована совместимость
источник

IK

Igor Karymov in ErlangRus
Но точно я уже не помню
источник