Size: a a a

2020 May 28

AK

Andrey Korzinev in pro.jvm
Vladimir Petrakovich
Легко: proto3 - недоразумение
Хорошая аргументация, и доводы интересные
источник

VP

Vladimir Petrakovich in pro.jvm
Andrey Korzinev
Хорошая аргументация, и доводы интересные
Ну по мне так всё очевидно, выкидываешь required - выкидываешь схему на помойку.
Такое обращение с опциональными значениями хуже слабой типизации.
источник

AK

Alexander Komarov in pro.jvm
С
Как обосновывать использование protobuf2 в новых проектах если уже есть 3й?
как вообще можно обосновать использование protobuf любой версии, если уже лет 20 есть SOAP?
источник

I

Igor in pro.jvm
корбы хватит всем..
источник

AK

Andrey Korzinev in pro.jvm
Vladimir Petrakovich
Ну по мне так всё очевидно, выкидываешь required - выкидываешь схему на помойку.
Такое обращение с опциональными значениями хуже слабой типизации.
required - порождение дьявола. А optional вернут в 3.12
источник

VP

Vladimir Petrakovich in pro.jvm
Alexander Komarov
как вообще можно обосновать использование protobuf любой версии, если уже лет 20 есть SOAP?
А вот тут аргументация простая: делай как гугл и станешь как гугл
источник

VP

Vladimir Petrakovich in pro.jvm
Andrey Korzinev
required - порождение дьявола. А optional вернут в 3.12
А в смысле вернут, если там и так всё optional?
источник

С

С in pro.jvm
Alexander Komarov
как вообще можно обосновать использование protobuf любой версии, если уже лет 20 есть SOAP?
Тут как раз все просто, если архитектор в силу своего возраста не слышал об этом.
источник

AK

Alexander Komarov in pro.jvm
архитектор
@
не слышал про SOAP
источник

AK

Alexander Komarov in pro.jvm
врагов надо знать в лицо!
источник

AK

Andrey Korzinev in pro.jvm
Vladimir Petrakovich
А в смысле вернут, если там и так всё optional?
Нет, это не так.
В proto3 убрали ключевые слова чтобы сэкономить на сериализации за счёт значений по умолчанию для скалярных типов.
В 3.12 вернут ключевое слово optional для скаляров чтобы можно было отличать значение по умолчанию с его отсутствием, как было в proto2.

А required - не нужен. Валидируйте входные параметры сами
источник

AK

Andrey Korzinev in pro.jvm
И желательно без эксепшенов :)
источник

AK

Andrey Korzinev in pro.jvm
Ну то есть фактически в 3.12 перестанут быть нужны врапперы
источник

AK

Andrey Korzinev in pro.jvm
И это хорошо
источник

DP

Denis Pavlyuchenko in pro.jvm
https://github.com/protocolbuffers/protobuf/blob/v3.12.0/docs/field_presence.md - если кто тоже захотел прочитать про эту новую фичу
источник

VP

Vladimir Petrakovich in pro.jvm
Andrey Korzinev
Нет, это не так.
В proto3 убрали ключевые слова чтобы сэкономить на сериализации за счёт значений по умолчанию для скалярных типов.
В 3.12 вернут ключевое слово optional для скаляров чтобы можно было отличать значение по умолчанию с его отсутствием, как было в proto2.

А required - не нужен. Валидируйте входные параметры сами
Какая экономия, если wire format одинаковый? Нет поля - нет тега, вот и всё.
Выкинули только признак его наличия в коде DTO.
Валидировать - это конечно полезно, но некоторые поля очевидно должны быть. В proto3 это никак не изобразить.
источник

VP

Vladimir Petrakovich in pro.jvm
Andrey Korzinev
Нет, это не так.
В proto3 убрали ключевые слова чтобы сэкономить на сериализации за счёт значений по умолчанию для скалярных типов.
В 3.12 вернут ключевое слово optional для скаляров чтобы можно было отличать значение по умолчанию с его отсутствием, как было в proto2.

А required - не нужен. Валидируйте входные параметры сами
Кстати, как валидация поможет определить, что при создании сообщения кто-то вообще забыл указать поле?
источник

DK

Dmitriy Krayanskiy in pro.jvm
так а это принципиально? Для объектов дефолтное значение как было так и осталось, а для примитивных типов есть обертки
источник

VP

Vladimir Petrakovich in pro.jvm
Dmitriy Krayanskiy
так а это принципиально? Для объектов дефолтное значение как было так и осталось, а для примитивных типов есть обертки
Принципиально ли обнаруживать, что в поле пустота потому что его забыли указать? Да, иначе как писать надёжное ПО, которое ведёт себя как задумано?
источник

DK

Dmitriy Krayanskiy in pro.jvm
ты, кажется, не прочитал про обертки.
Или я не понял проблему
источник