TGViewer
Всё о разработке | Леонид Ченский Всё о разработке | Леонид Ченский @leoscode · 732 subscribers
Post #30 360
❗РАБОТА С PROTOBUF НА ОТРАСЛЕВОМ УРОВНЕ. ЧАСТЬ 1.

1️⃣ В любом современном языке есть средства форматирования, например prettier для 👩‍💻, gofmt для 👩‍💻 и rustfmt для 👩‍💻. К сожалению долгое время форматирования в protobuf отсутствовало на должнем уровне. И вот в CLI buf появилась функцию format, которая позволяет форматировать Protobuf файлы в соответствии с отраслевыми стандартами.

Вот пример отформатированного файла:
syntax = "proto3";

package moguchev.my.awesome.package.api.users;

import "google/api/field_behavior.proto";
import "protoc-gen-openapiv2/options/annotations.proto";
import "validate/validate.proto";

option csharp_namespace = "Moguchev.My.Awesome.Package.Api.Users";
option go_package = "github.com/moguchev/my/awesome/package/pkg/api/users;users";

// GetUsersRequest - GetUsersRequest request
message GetUsersRequest {
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
json_schema: {
title: "ListServicesRequest"
description: "ListServices request"
required: [
"pagination"
]
}
};
// pagination - пагинация
Pagination pagination = 1 [
json_name = "pagination",
(google.api.field_behavior) = REQUIRED,
(validate.rules).message.required = true
];

// ids - идентификаторы сервисов
repeated uint64 ids = 2 [json_name = "id"]; // query param: ?id=1&id=2
}

Форматирует buf реально круто, но есть нюанс - нет возможности настроить правила форматирования. Разработчики buf посчитали, что отформатировать .proto файл можно лишь единственным образом. К сожалению инструмент еще не завезли в VSCode 👩‍💻 и IntelliJ 👩‍💻, но обещают в скором времени добавить. Ждем!)
  • 🔥 8
  • ❤ 4
  • 👍 2
  • 🤯 2
  • 🙏 1
More from @leoscode
  1. Sep 15, 2026Помню как в детстве хотел такого же ассистента как Jarvis у Железного человека. Сейчас буд…
  2. Aug 24, 2026Гипотетическая история Представьте завтра все датацентры «вдруг» перестанут работать. Прив…
  3. Aug 4, 2026"Капризный день"
  4. Jul 17, 2026Пользуюсь случаем, напишу тут: ищу заряжененного Go разработчика к себе в команду. Ссылка…
  5. Jul 14, 2026Утро вторника началось не с кофе… Кто положил, признавайтесь!)
  6. Jul 1, 2026Согласны? 👍 Да 🗿Нет
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →