Версия источника: 4880e8b4372c96001c2e052be28b68a95d31252b
Синхронизировано: 2026-11-09T11:15:07.649Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/4880e8b4372c96001c2e052be28b68a95d31252b

<a id="backend-bounded-concurrency"></a>

# Ограничение параллелизма

## Коротко

Каждая запущенная задача должна иметь предел, отмену и понятное завершение.

## Плохо

```text
На каждый файл запускается новая goroutine без лимита.
```

## Хорошо

```text
Очередь с ограничением размера.
Пул работников. Отмена и ожидание завершения.
```

## Почему

Неограниченная параллельность может исчерпать память и соединения.

## Когда применять

Размер пула выбирают измерением. Для общего изменяемого состояния нужны синхронизация и race-проверка.

## Как проверить

- Проверьте всплеск нагрузки, остановку и утечку goroutine.

## Человек

Задаёт допустимую нагрузку и приоритеты задач.

## Агент

Реализует правило в коде сервиса и проверяет ошибку, отмену и граничные входные данные.

Контроль результата:

- Проверьте всплеск нагрузки, остановку и утечку goroutine.

## Источники

- [Effective Go - The Go Programming Language](https://go.dev/doc/effective_go#channels)
- [Data Race Detector - The Go Programming Language](https://go.dev/doc/articles/race_detector)

Уровень: Рекомендуется. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/backend/go/rules/bounded-concurrency.md)
