Files
2026-04-13 08:14:09 +03:00

38 lines
1.6 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package main
// fx.Module — модульный монолит с Fx.
//
// Каждый бизнес-домен живёт в своём файле:
// infra.go — БД, кэш, шина событий (общая инфраструктура)
// auth_module.go — авторизация: сессии + проверка токенов
// user_module.go — профили пользователей
// notification_module.go — уведомления
// api.go — HTTP-хендлер и сервер
//
// Зачем это нужно:
// Команда авторизации добавляет TokenValidator → правит ТОЛЬКО auth_module.go.
// main.go не трогает. Конфликтов при мерже с командой уведомлений — ноль.
//
// Без fx.Module все провайдеры в одном main.go. Три команды правят один файл.
// Мерж-конфликты на каждом PR.
//
// Сравните с cmd/fx-di-shared/ — тот же код, но всё в одном файле.
import "go.uber.org/fx"
func main() {
fx.New(
// Общая инфраструктура
InfraModule,
// Бизнес-домены — каждая команда владеет своим файлом.
// Добавить новый домен = новый файл + одна строка здесь.
AuthModule,
UserModule,
NotificationModule,
// API — собирает сервисы в HTTP-хендлер
APIModule,
).Run()
}