978777ff6a
Под выбранный объём 100-1000 сделок/день микросервисная архитектура с 5 отдельными процессами избыточна. Объединяем lk-gateway, m2m-core, nsd-adapter, notify в один Go-бинарник bj-server. lk-emulator остаётся отдельным бинарником как QA-инструмент (имитация ЛК ESIA Finance). cmd/bj-server/main.go: - Поднимает lkgateway.NewServer (HTTP :8080, REST API + admin UI) - Фоновый poller NSD ИШ (если задан BJ_NSD_PROFILE) - Заглушка notify worker (M3-M4: e-mail / Yandex Messenger / WS-push) - Graceful shutdown через signal.NotifyContext cmd/lk-gateway/, cmd/m2m-core/, cmd/nsd-adapter/, cmd/notify/ — удалены. deploy/systemd/: - bj-server.service — systemd unit для основного сервиса (один файл, простой деплой) - bj-emulator.service — systemd unit для эмулятора - README.md с инструкцией по установке (useradd bj, /opt/bj, daemon-reload) Makefile: - build теперь собирает только bj-server и lk-emulator - бывшие пять бинарей удалены Размер: - bj-server: 19.5 МБ (включает lk-gateway + m2m-core + nsd-adapter + notify) - lk-emulator: 12.7 МБ - общий размер артефактов уменьшился c ~50 МБ до 32 МБ Внутренние пакеты internal/<...> не изменились — разделение сохраняется на уровне Go-пакетов, что облегчает возврат к микросервисам если объём вырастет до 1000+ сделок/день. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
50 lines
1.3 KiB
Makefile
50 lines
1.3 KiB
Makefile
.PHONY: help build test lint fmt vet clean tidy ci compose-up compose-down
|
|
|
|
GO ?= go
|
|
GOLANGCI_LINT ?= golangci-lint
|
|
COMPOSE ?= podman-compose
|
|
|
|
help:
|
|
@echo "Цели:"
|
|
@echo " make build - сборка всех бинарников Go"
|
|
@echo " make test - юнит-тесты"
|
|
@echo " make lint - golangci-lint"
|
|
@echo " make fmt - gofmt + goimports"
|
|
@echo " make vet - go vet"
|
|
@echo " make tidy - go mod tidy"
|
|
@echo " make ci - все проверки CI локально"
|
|
@echo " make compose-up - поднять локальный стек (PostgreSQL, MinIO, заглушки)"
|
|
@echo " make compose-down - остановить локальный стек"
|
|
@echo " make clean - удалить артефакты"
|
|
|
|
build:
|
|
@mkdir -p bin
|
|
$(GO) build -o bin/bj-server ./cmd/bj-server
|
|
$(GO) build -o bin/lk-emulator ./cmd/lk-emulator
|
|
|
|
test:
|
|
$(GO) test ./... -race -count=1
|
|
|
|
lint:
|
|
$(GOLANGCI_LINT) run ./...
|
|
|
|
fmt:
|
|
$(GO) fmt ./...
|
|
|
|
vet:
|
|
$(GO) vet ./...
|
|
|
|
tidy:
|
|
$(GO) mod tidy
|
|
|
|
ci: tidy fmt vet lint test build
|
|
|
|
compose-up:
|
|
$(COMPOSE) -f deploy/docker-compose/docker-compose.yml up -d
|
|
|
|
compose-down:
|
|
$(COMPOSE) -f deploy/docker-compose/docker-compose.yml down
|
|
|
|
clean:
|
|
rm -rf bin/ dist/ coverage.out coverage.html
|