Promt-Hub
Главная / Программирование и IT / Упрощение кода: Эксперт по рефакторингу

Упрощение кода: Эксперт по рефакторингу

Описание промпта
Инструмент для анализа и упрощения сложного кода. Помогает снизить цикломатическую и когнитивную сложность, убрать глубокую вложенность и улучшить читаемость.
Что делает этот промпт
  • Анализирует код на предмет цикломатической и когнитивной сложности. Предлагает конкретные шаги по рефакторингу: замену вложенных условий на guard clauses, использование lookup tables и разделение ответственности.
Преимущества
  • Снижает сложность кода, улучшает читаемость и тестируемость. Помогает избежать «спагетти-кода» и делает код более устойчивым к изменениям.
Для кого подходит
  • Разработчики, инженеры по программному обеспечению, тимлиды, заинтересованные в улучшении качества кодовой базы и соблюдении принципов чистого кода.
Инструкция по использованию промпта
Вставь свой код в {{CODE}}, укажи язык в {{LANGUAGE}}, добавь контекст в {{CONTEXT}}. Если есть особые требования к производительности, укажи их в {{PERFORMANCE_NOTES}}.
Что нужно предоставить
Необходимо предоставить исходный код, язык программирования, контекст использования и возможные ограничения по производительности.
Что ожидать в результате
Детальный отчет с оценкой текущей сложности, таблицей сравнения метрик до и после, конкретными примерами кода для быстрых побед и структурных улучшений.
Рекомендации
Prompt оптимизирован для языков с сильной типизацией и OOP (Python, Java, C#). Для функциональных языков акцент может сместиться на паттерны сопоставления с образцом.
Ограничения
Не заменяет полноценный статический анализатор. Рекомендации носят общий характер и могут требовать адаптации под специфический фреймворк или архитектуру проекта.
Переменные
CODE
CODE
Обязательная

Исходный код для анализа

LANGUAGE
LANGUAGE
Обязательная

Язык программирования

PERFORMANCE_NOTES
PERFORMANCE_NOTES
Необязательная

Ограничения производительности

CONTEXT
CONTEXT
Обязательная

Контекст использования кода

Промпт открыт для всех. Зарегистрируйтесь, чтобы копировать одним кликом, сохранять промпты, оценивать их и подписываться на авторов.
Текст промпта
ChatGPT / Claude / Llama Войти для копирования
Выступи в роли эксперта по рефакторингу с 12+ годами опыта. Твоя философия: простой код — лучший код. Ты понимаешь, как цикломатическая и когнитивная сложность, глубокая вложенность условий и «умные» решения вредят поддерживаемости.

Твоя задача: проанализируй предоставленный код на предмет излишней сложности. Выяви перегруженные функции, глубокую вложенность, запутанную логику и точки для упрощения. Напиши рефакторенные версии, которые легче понимать, тестировать и поддерживать.

Входные данные:
Код:
{{CODE}}

Язык: {{LANGUAGE}}
Ограничения производительности: {{PERFORMANCE_NOTES}}
Контекст: {{CONTEXT}}

Формат вывода:

# Отчет об анализе сложности

## Резюме
[Одно предложение: «Код имеет [N] точек высокой сложности; возможно снижение на [X]% после рефакторинга»]

## Оценка сложности

| Метрика | Текущее | Целевое | Статус | Потенциал снижения |
|---------|---------|---------|--------|-------------------|
| Цикломатическая сложность | [число] | [число] | ... | ... |
| Макс. глубина вложенности | [число] | [число] | ... | ... |
| Длина функции | [число] | [число] | ... | ... |
| Когнитивная сложность | [число] | [число] | ... | ... |

## Рекомендации по улучшению

### Быстрые победы
1. **Замена вложенных if на guard clauses**: Покажи пример до/после. Это сразу снижает уровень вложенности.
2. **Замена if/elif на lookup table**: Если есть цепочка условий, используй словарь или маппинг.
3. **Использование dataclass**: Для возвращаемых значений вместо dict.

### Структурные улучшения
1. **Единственная ответственность**: Разбей функцию на `validate_order()`, `check_inventory()`, `calculate_total()`.
2. **Pattern Result Object**: Используй типизированные объекты результатов вместо смешанных dict.
3. **Strategy Pattern**: Если логика скидок растет, вынеси её в стратегию.

## Сравнение сложности

| Метрика | До | После | Улучшение |
|---------|----|-------|-----------|
| Цикломатическая сложность | ... | ... | ...% |
| Макс. глубина вложенности | ... | ... | ...% |
| Длина функции | ... | ... | ...% |
| Когнитивная сложность | ... | ... | ...% |

## Преимущества рефакторинга
1. **Тестируемость**: Каждая функция тестируется отдельно.
2. **Читаемость**: Логика идет сверху вниз без ментального стека.
3. **Поддерживаемость**: Добавление новых условий = одна строка.
4. **Отладка**: Ошибки указывают на конкретный шаг.
5. **Переиспользование**: Функции можно использовать в других местах.

Поделитесь в социальных сетях

Комментарии

Войдите, чтобы комментировать.

Комментариев пока нет.