Согласитесь, приятно и полезно, когда в проекте исходный код выглядит красиво и единообразно. Это облегчает его понимание и поддержку. Покажем и расскажем, как реализовать форматирование исходного кода при помощи clang-format, git и sh.
Читать полностью »
Рубрика «protobuf» - 2
Форматирование исходного кода в Linux средствами ClangFormat: проблемы и решение
2019-01-28 в 11:27, admin, рубрики: C, c++, clang-format, Git, java, javascript, linux, objective-c, protobuf, Программирование, Производство и разработка электроники, Разработка под Linux, Совершенный кодПостроение микросервисной архитектуры на 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 и другие новые технологии.
В этой части, я хочу показать основные концепции и технологии для построения микросервисов. Напишем простую реализацию. В проекте будут следующие сущности:
- грузы
- инвентарь
- суда
- пользователи
- роли
- аутентификация
Twirp против gRPC. Стоит ли?
2018-04-30 в 18:10, admin, рубрики: Go, golang, grpc, protobuf, RPC, TwirpЕсли вы используете микро-сервисную архитектуру, то скорее всего знаете, что накладные расходы на коммуникацию между сервисами часто становятся значительной проблемой и если Вы сталкивались с этой проблемой, то скорее всего начали использовать Protobuf и и его реализацию от Google gRPC или Go-Kit от Peter Bourgon или что-то другое. Пересказывать что это и как этим пользоваться нет смысла, все достаточно хорошо описано до меня. Я сам активно использую gRPC в своих проектах, но тут Twich решил выпустить свою реализацию protobuf Twirp. Если Вам интересно, зачем им это было нужно или чем она отличается проходите под кат.Читать полностью »
Что спрятано внутри онлайн-касс: разработка фискального регистратора
2018-04-26 в 11:52, admin, рубрики: buildroot, c++, ESC/P, protobuf, Python-ESCPOS, qt, встроенное по, Законодательство и IT-бизнес, онлайн-кассы, ОФД, Программирование, программирование электроники, Разработка систем передачи данных, разработка электроникиМало кто задумывается, делая покупки в магазине, как работает техника кассира. На самом деле это хорошо отлаженный механизм не только с технической точки зрения, но и с точки зрения законодательства. Все знают, что главное получить чек, а вот почему чек является фискальным документом, подтверждающим покупку — в основном знают только сами предприниматели.
В этой статье мы поделимся опытом разработки кассового аппарата и расскажем, как там всё устроено изнутри.
Читать полностью »
NGINX и gRPC теперь настоящие друзья
2018-03-25 в 22:26, admin, рубрики: grpc, java, nginx, protobuf, Программирование, Промышленное программированиеНесколько дней назад зарелизилась новая версия Nginx — 1.13.10. Главная фича данного релиза — это нативная поддержка проксирования HTTP/2, и, как следствие, gRPC.
Compact varint — уникальность и большие значения за ту же стоимость
2018-03-09 в 15:47, admin, рубрики: Go, ipfs, multiformats, protobuf, varintВнимание: Код представленный в статье немного отличается от оригинальных EncodeVarint и DecodeVarint и даёт другие результаты. Будьте внимательны.
В multiformats/unsigned-varint обсуждении правильной записи числа в varint было замечено что многие числа в оригинальном varint могут быть записаны в последовательности разной длинны. Это даст разные блоки и их хеши при идентичных значениях кодированных в протобуфер.
Оригинальный varint
Оригинальный varint просто делит число на кусочки по 7 бит. И записывает их в порядке от младшего к старшему добавляя к каждому кусочку старший 8ой бит. Значение этого бита зависит от того последний это кусочек (0) или нет (1).
Таким образом например значение 0 мы можем записать во многих вариантах:
0000 0000 (0x00)
varint = 01000 0000 0000 0000 (0x8000)
varint = 01000 0000 1000 0000 0000 0000 (0x808000)
varint = 0
и так далее.
Compact varint
Я подумал что можно начинать значения контейнера большего размера от максимального значения предыдущего контейнера + 1. Ведь если мы используем контейнер такого размера то число должно быть больше максимума предыдущего контейнера.
31 февраля
2018-01-05 в 19:04, admin, рубрики: c++, chromium, Google, Google Chrome, google chromium, open source, protobuf, protocol buffers, pvs-studio, Блог компании PVS-Studio, информационная безопасность, статический анализ кода
Сейчас я изучаю отчёт очередной проверки проекта Chromium и используемых в нём библиотек, с помощью анализатора кода PVS-Studio. По итогам проверки у меня намечается цикл статей, посвященный разбору некоторых видов ошибок, и тому, как их можно избежать. Однако, одна ошибка так сильно понравилась, что я решил не откладывать её описание, а сразу написать маленькую заметку в блог.
Читать полностью »
Делаем хорошо со Swift 4, Perfect, Protobuf и MySQL на Linux-сервере
2017-11-08 в 17:20, admin, рубрики: linux, mysql, perfect, protobuf, swiftМожно долго смотреть на три вещи: как течет вода, как имплементируется CoreFoundation в Linux Swift, и как не обновляется документация Perfect
Сначала кратко для тех, кто не в курсе:Perfect — это один из самых стабильных серверных фреймворков на Swift. (benchmark)
Задача:
Сервер Perfect на Linux c MySQL и Protocol Buffers для общения с приложением-клиентом
Важное требование:
Мы прогрессивные хипстеры со свифтом (sarcasm), поэтому дайте самую последнюю версию Swift 4.0.2
Отчет и материалы SPA meetup’а 8 апреля 2017
2017-04-14 в 11:30, admin, рубрики: api, components, css, csstree, javascript, open source, protobuf, rempl, single page application, SPA, Блог компании AvitoВ прошедшую субботу в офисе Avito прошел SPA Meetup. Это митап-сателит Moscow.js, ориентированный на фронтенд-разработчиков, которым интересна тема веб-приложений (Single Page Application), и сочувствующих им. Это уже третья встреча, которая получилась весьма насыщенной: 3 доклада, 2 блица, свободный микрофон, панельная дискуссия и, конечно же, живое общение. В этом посте мы немного расскажем о том, как это было, и поделимся видеозаписями докладов.
Читать полностью »