Protocol Buffers — это очень популярный, крутой и качественный проект, развиваемый в основном компанией Google. Это хороший вызов для статического анализатора кода PVS-Studio. Найти хоть что-то — это уже достижение. Попробуем.
Рубрика «protobuf»
Брутальный Protocol Buffers от Google vs статический анализ кода
2021-11-05 в 10:58, admin, рубрики: c++, open source, protobuf, protocol buffers, pvs-studio, SAST, баги, Блог компании PVS-Studio, информационная безопасность, открытые проекты, статический анализ, статический анализ кодаКроссплатформенный мультиплеер на Godot без боли
2021-01-30 в 10:52, admin, рубрики: Godot, protobuf, WebSocket, разработка игрЧто хотим сделать?
Синхронизацию действий игроков в игре с клиент-серверной архитектурой. Должна быть возможность играть из браузера.
Для примера реализуем простую чат-комнату:
-
При соединении:
-
Клиент получает уникальный ID;
-
Клиент получает информацию о всех остальных игроках (ID + имя);
-
Все остальные игроки получают информацию о новом игроке (ID + имя по умолчанию);
-
В консоли появляется сообщение о входе.
-
-
При потере соединения:
-
Все остальные игроки получают информацию о выходе игрока с сервера (ID);
-
В консоли появляется сообщение о выходе.
-
Protobuf vs Avro. Как сделать выбор?
2020-11-29 в 13:12, admin, рубрики: avro, protobuf, serialization, Анализ и проектирование систем, микросервисы, хранение данныхВ статье перечислены особенности двух популярных форматов сериализации, которые следует учитывать архитектору, выбирая один из них.
Размер и скорость
В сети можно найти сравнительные тесты форматов сериализации. Не стоит придавать значение конкретным числам, так как скорость сериализации/десериализации, как и размер получающихся двоичных данных, зависит от конкретной схемы данных и от реализации сериализатора. Отметим лишь, что авро и протобаф занимают лидирующие позиции в подобных тестах.
Преимущество aвро в том, что поля записи сохраняются одно-за-другим, без разделителей. Но, имея дело с авроЧитать полностью »
JPoint 2020: новый формат, новые возможности
2020-07-04 в 17:01, admin, рубрики: graalvm, java, jmh, jpoint, jug.ru, kotlin, oracle, pact, protobuf, quarkus, scala, spring, valhalla, конференцииС 29 июня по 3 июля 2020 года в онлайн-формате прошла Java-конференция JPoint 2020. Информация о докладах, спикерах, особенностях проведения, впечатления от конференции — всё это можно прочитать далее.
Полный набор gRPC, RESTful JSON API, WS и Swagger из одного proto файла. От введения до нюансов и тонкостей grpc-gateway
2020-04-11 в 21:49, admin, рубрики: api, api server, Go, golang, grpc-gateway, protobuf, swagger, web-socketsВ этой статье я опишу процесс создания сервера с gRPC и RESTful JSON API одновременно и Swagger документацию к нему.
Эта статья — продолжение разбора различных способов реализаций API-сервера на Golang с автогенерацией кода и документации. Там я обещал более подробно остановиться на этом подходе.
grpc-gateway — это плагин protoc. Он читает определение сервиса gRPC и генерирует обратный прокси-сервер, который переводит RESTful JSON API в gRPC. Этот сервер создается в соответствии с пользовательскими параметрами в вашем определении gRPC.
Это выглядит вот так:
Структурированный протокол обмена данных Protobuf или JSON во фронтенде?
2020-02-25 в 15:11, admin, рубрики: api, javascript, node.js, protobuf
В новом проекте в нашей команде мы выбрали frontend framework VUE для нового продукта, бэкенд написан на PHP, и уже как 17 лет успешно работает.
Когда код начал разрастаться, нужно было думать над упрощением обмена данных с сервером, об этом я и расскажу.
Читать полностью »
Как создать простой микросервис на Golang и gRPC и выполнить его контейнеризацию с помощью Docker
2019-07-25 в 8:35, admin, рубрики: docker, Go, golang, grpc, Microservices, protobuf, микросервисы, ПрограммированиеПривет! представляю вашему вниманию перевод статьи «Go, gRPC and Docker» автора Mat Evans.
Существует множество статей о совместном использовании Go и Docker. Создавать контейнеры, способные взаимодействовать с клиентами и между собой, очень легко. Далее следует небольшой пример того, как это делается на базовом уровне.
Читать полностью »
C++ Enterprise Edition. Возможно ли?
2019-06-11 в 13:03, admin, рубрики: c++, dsl, framework, mq, protobufC++ Enterprise Edition
Что такое "enterprise edition"
Удивительно, но за все время моей работы в IT, я ниразу не слышал, чтобы кто-то говорил "enterprise edition" относительно языка программирования, кроме как для Java. Но ведь приложения для корпоративного сегмента люди пишут на многих языках программирования, и сущности, которыми оперируют программисты, если не идентичны, то схожи. И для c++ в частности, я бы хотел заполнить пробел enterpr'айзности, хотя бы рассказав об этом.
Форматирование исходного кода в Linux средствами ClangFormat: проблемы и решение
2019-01-28 в 11:27, admin, рубрики: C, c++, clang-format, Git, java, javascript, linux, objective-c, protobuf, Программирование, Производство и разработка электроники, Разработка под Linux, Совершенный код
Согласитесь, приятно и полезно, когда в проекте исходный код выглядит красиво и единообразно. Это облегчает его понимание и поддержку. Покажем и расскажем, как реализовать форматирование исходного кода при помощи clang-format, git и sh.
Читать полностью »
Построение микросервисной архитектуры на Golang и gRPC, часть 1
2018-10-08 в 7:31, admin, рубрики: Go, golang, grpc, protobufВведение в микросервисную архитектуру
Часть 1 из 10
Это серия из десяти частей, я постараюсь раз в месяц писать про построение микросервисов на Golang. Я буду использовать protobuf и gRPC в качестве основного транспортного протокола.
Стек, который я использовал: golang, mongodb, grpc, docker, Google Cloud, Kubernetes, NATS, CircleCI, Terraform и go-micro.
Зачем мне это? Поскольку мне потребовалось много времени, чтобы разобраться в этом и решить накопившиеся проблемы. Так же я хотел поделиться с вами тем, что я узнал о создании, тестировании и развертывании микросервисов на Go и другие новые технологии.
В этой части, я хочу показать основные концепции и технологии для построения микросервисов. Напишем простую реализацию. В проекте будут следующие сущности:
- грузы
- инвентарь
- суда
- пользователи
- роли
- аутентификация