DeepSeek Код 👁 33

DeepSeek: рефакторинг легаси-функции пошагово

Промпт для безопасного пошагового рефакторинга легаси с тестами для верификации.

Промпт Запустить →
Промокод — до 25% бонусами к первому пополнению в most-ai
Проведи рефакторинг легаси-функции по шагам, сохранив поведение до последней ветки.

Язык и версия: [ЯЗЫК: Python 3.11]
Код (свой вставь вместо этого, пример рабочий):
[КОД: def calc(u, t, d=None): if u is not None: if t == 'new': p = 100 if d: p = p - d if u.get('vip'): p = p * 0.9 return p elif t == 'old': p = 80 if d: p = p - d if u.get('vip'): p = p * 0.9 return p return 0]
Чем покрыт: [ТЕСТЫ: тестов нет, функция вызывается из двух мест — корзина и админка]

Что нужно:
1. Что функция делает на самом деле — 3–5 строк, включая поведение на краях (u = None, d больше цены).
2. Список проблем с приоритетом: что ломает читаемость, а что реально опасно.
3. Рефакторинг шагами: ОДНО изменение за шаг, после каждого — что изменилось и почему поведение
   осталось прежним. Не больше шести шагов.
4. Финальная версия целиком.
5. Тесты, которые доказывают эквивалентность старой и новой версии, включая краевые случаи из пункта 1.

Отсечка. Не выдавай сразу «вот красивая новая версия» — без промежуточных шагов такой рефакторинг
невозможно ни проверить, ни откатить по частям. Не меняй поведение молча: если в старом коде скидка
может уронить цену ниже нуля, а в новом нет, это отдельной строкой «изменение поведения», а не тихая
правка. Не дроби на функции из одной строки и не тащи паттерны ради паттернов — стратегия и фабрика
на две ветки условия хуже, чем понятный if.

Проверка перед выдачей: прогони мысленно старую и новую версию на наборах (None, 'new', None),
({'vip': True}, 'old', 200), ({}, 'unknown', 0). Совпали результаты — выдавай, разошлись — правь.
Запустить промпт →

Похожие промпты

DeepSeek
DeepSeek: код-ревью pull request с приоритизацией
Claude
Рефакторинг функции Python по принципам clean code
DeepSeek
DeepSeek: написать unit-тесты для функции
DeepSeek
DeepSeek: Python-калькулятор сметы на ремонт
DeepSeek
DeepSeek: объяснить чужой/легаси код по строкам
DeepSeek
Пошаговая отладка бага с трейсбэком
Рефакторинг легаси-модуля в Kimi: карта, план, код по шагам
Kimi
Рефакторинг легаси-модуля в Kimi: карта, план, код по шагам
DeepSeek
Парсер на заказ через DeepSeek: код-шаблон

Пример результата

Что делает: парсит CSV, фильтрует по дате, считает сумму. Проблемы: 80 строк в одной функции, ручной парсинг CSV вместо csv-модуля, magic numbers. Шаг 1. Заменить ручной парсинг на csv.DictReader — убирает 20 строк. Шаг 2. Вынести фильтрацию в отдельную функцию filter_by_date... Финал: 3 функции по 10-15 строк + main. Тесты: test_filter_by_date_inclusive, test_sum_empty_returns_zero...

Полезные статьи

Промты для программиста: 43 промпта под задачи кода
Ответы на тест по нейросетям для учителей: все вопросы с пояснениями
Промт для матрицы судьбы: два промпта и сверка расчёта

Все гайды →