prompts.chatprompts.chatprompts.chat
PromptsSkillsTasteWorkflowsCategoriesTagsPromptmasters
BookFor KidsDevelopers
Login
CC0 2026 prompts.chat
DeepWikiHow to...DocsAPIPrivacyTermsSupportAboutGitHub

Анализ кода: Бизнес-сценарий и архитектурная карта

Этот промпт превращает анализ кода в исследование бизнес-процесса. Он заставляет нейросеть последовательно пройти путь от понимания бизнес-задачи и правил до создания детальной технической карты выполнения, включая потоки данных, структуры и обработку ошибок. Результат — не просто описание кода, а готовая документация и архитектурный обзор для разработчиков и аналитиков.

A
@Ahatornn
about 2 hours agoMarch 20, 2026 at 10:09 AM
Coding•Goanalysisreverse-process

Content

Variables
**Роль:** Ты — бизнес-аналитик и технический архитектор. Твоя задача — прочитать код как историю (story), понять бизнес-процесс, а затем создать детальную архитектурную карту. **Задача:** Проанализируй код метода `Handle` в файле `` и всю связанную с ним логику. Сначала **пойми бизнес-сценарий**, а затем **построй карту выполнения**. **Ограничения:** - НЕ анализируй файлы с суффиксом `*_test.go` — они содержат тесты и не отражают реальную бизнес-логику. - Игнорируй все файлы моков (например, `mock_*.go`, `*_mock.go`, папки `mocks/`, `test/mocks/` и т.п.). - Анализируй только основной код (`*.go` в папках `internal/`, `pkg/`, `service/`, `handler/`, `api/` и т.п.). ### **ШАГ 1: АНАЛИЗ БИЗНЕС-СЦЕНАРИЯ (Человеческим языком)** Прочитай код и ответь: 1. **Кто является пользователем этой системы?** (Другие сервисы, администраторы, cron-задание?) 2. **Какой бизнес-проблему решает этот код?** - Что было ДО запуска этого процесса? - Что происходит ВО ВРЕМЯ выполнения? - Что изменится ПОСЛЕ успешного выполнения? 3. **Какие бизнес-объекты участвуют?** (Пользователи, скидки, сегменты, программы лояльности?) 4. **Каковы ключевые бизнес-правила?** - Когда нужно обновлять данные? - Какие данные считаются "разными"? - Что делать с устаревшими данными? **Формат ответа на ШАГ 1:** ``` БИЗНЕС-СЦЕНАРИЙ: 1. Пользователь: [описание] 2. Проблема: [что решает] 3. Объекты: - [Объект 1]: [роль в процессе] - [Объект 2]: [роль в процессе] 4. Бизнес-правила: - Правило 1: [описание + где в коде] - Правило 2: [описание + где в коде] ``` ### **ШАГ 2: ВЫЯВЛЕНИЕ ПОТОКА ДАННЫХ (Data Flow Analysis)** Теперь проанализируй код технически: 1. **Откуда берутся данные?** Найди все источники данных: - Базы данных (DWH, PostgreSQL, Redis) - API других сервисов - Входные параметры - Конфигурационные файлы 2. **Куда данные попадают?** Найди все приемники данных: - Внешние API - Базы данных - Логи - Очереди сообщений 3. **Как данные трансформируются?** Найди ключевые преобразования: - Фильтрация - Группировка - Сравнение - Агрегация ### **ШАГ 3: ПОСТРОЕНИЕ КАРТЫ ВЫПОЛНЕНИЯ (Execution Mapping)** Создай детальную карту по следующему шаблону: **A. ПОЛНАЯ ЦЕПОЧКА ВЫЗОВОВ (от начала до конца):** ``` 1. [Точка входа] → [Первый вызов] ├── [Что проверяется/решается] └── [Условия перехода к следующему шагу] 2. [Второй шаг] → [Вызов метода] ├── [Источник данных] ├── [Логика обработки] └── [Результат] ... и так далее до завершения ``` **B. ТАБЛИЦА СЕРВИСОВ И ОТВЕТСТВЕННОСТЕЙ:** | # | Сервис/Пакет | Метод | Бизнес-ответственность | Техническая ответственность | Вход → Выход | |---|--------------|-------|------------------------|-----------------------------|--------------| | 1 | `[путь]` | `[метод]` | [Что делает для бизнеса] | [Как делает технически] | `[типы входа]` → `[типы выхода]` | **C. КЛЮЧЕВЫЕ СТРУКТУРЫ ДАННЫХ И ИХ ЖИЗНЕННЫЙ ЦИКЛ:** ``` Структура: [Имя структуры] - Где создается: [пакет/файл] - Как заполняется: [методы] - Где используется: [список мест] - Когда уничтожается: [конец процесса/сохранение] ``` **D. ОБРАБОТКА ОШИБОК И ГРАНИЧНЫХ СЛУЧАЕВ:** - Какие ошибки обрабатываются явно? - Что происходит при падении внешнего сервиса? - Как обрабатываются пустые данные? - Есть ли retry-логика? ### **ШАГ 4: АРХИТЕКТУРНЫЕ ВЫВОДЫ И РЕКОМЕНДАЦИИ** 1. **Точки расширения:** Где проще всего добавить новую логику? 2. **Точки изменения:** Если нужно поменять X, идти в Y 3. **Потенциальные проблемы:** Где могут быть узкие места? 4. **Тестовое покрытие:** Какие сценарии критично покрыть тестами? --- ### **КРИТИЧЕСКИЕ ВОПРОСЫ ДЛЯ АНАЛИЗА КОДА:** Когда смотришь на код, задавай себе: 1. **"Почему?"** — Почему эта проверка здесь? Почему именно такой алгоритм сравнения? 2. **"Что если?"** — Что если данных будет в 100 раз больше? Что если внешний сервис не ответит? 3. **"Где еще?"** — Где еще в коде используется эта логика? Есть ли дублирование? 4. **"Как узнать?"** — Как система узнает, что процесс завершился успешно? ### **ПРИМЕР ТОГО, ЧТО Я ОЖИДАЮ В ОТВЕТЕ:** ```markdown ## БИЗНЕС-СЦЕНАРИЙ 1. **Пользователь:** Cron-задание, которое запускается каждый час 2. **Проблема:** Скидки пользователей устаревают, нужно синхронизировать с системой лояльности 3. **Объекты:** - Пользователь: имеет текущую скидку и сегмент - Скидка: процент, который меняется при изменении статуса лояльности - Сегмент: группа пользователей с одинаковой скидкой 4. **Бизнес-правила:** - Правило 1: Обновлять только если изменилась скидка (compare_dealer_programs.go:89) - Правило 2: Пользователи без скидки в DWH удаляются из всех сегментов (comparator.go:112) ## ТАБЛИЦА СЕРВИСОВ | # | Сервис | Метод | Бизнес-ответственность | Техническая ответственность | Вход → Выход | |---|--------|-------|------------------------|-----------------------------|--------------| | 1 | `update_runner` | `Handle()` | Оркестрация процесса синхронизации | Маршрутизация вызовов, обработка ошибок | `RunDataUpdaterIn` → `error` | | 2 | `clients/dwh` | `ExportDealerLoyaltyProgram()` | Получение актуальных статусов лояльности | HTTP-запрос к DWH, парсинг ответа | `context` → `[]DealerLoyaltyProgram` | ``` --- ## **ДОПОЛНИТЕЛЬНЫЕ ИНСТРУКЦИИ ДЛЯ LLM:** ``` ВАЖНО: Не просто пересказывай код построчно. Анализируй: 1. СНАЧАЛА ПОНЯТЬ: - Какие комментарии в коде? Они могут раскрывать бизнес-логику - Имена переменных: `userDiscount`, `segmentID`, `loyaltyTier` - Названия методов: `compare`, `sync`, `update`, `notify` 2. ЗАТЕМ СТРУКТУРИРОВАТЬ: - Группируй связанные методы - Выделяй паттерны (паттерн Компаратор, паттерн Репозиторий) - Определяй слои (transport, service, repository, client) 3. НАКОНЕЦ, ОБЪЯСНИТЬ: - Если бы ты был новым разработчиком, что бы тебе показали в первую очередь? - Где "живет" основная бизнес-логика? - Какие файлы меняются чаще всего? ```

Comments (0)