Ответ
В проектах применял:
- Монолит - для небольших сервисов с простой логикой. Плюсы: простота разработки и деплоя.
// Пример структуры
cmd/
main.go
internal/
handlers/
models/
services/
- Микросервисы - для масштабируемых систем. Использовал gRPC для межсервисного взаимодействия.
// gRPC клиент
conn, _ := grpc.Dial("service:50051", grpc.WithInsecure())
client := pb.NewServiceClient(conn)
-
Clean/Hexagonal - для сложных доменов. Отделял бизнес-логику от инфраструктуры через интерфейсы.
-
CQRS - в системах с интенсивным чтением/записью данных. Использовал Kafka для событий.
Для API применял REST и GraphQL (с библиотекой gqlgen). В качестве брокера сообщений - RabbitMQ/NATS.
Видео-ответы
▶
▶
▶
▶
▶