Как рефакторить код с сохранением поведения.
Рефакторинг должен сохранять наблюдаемое поведение, если изменение явно не запрошено. Определите тесты или примеры, выявляющие непреднамеренные различия.
Адаптируйте процесс под свою задачу.
Определите неизменяемое поведение и дублирование или сложность, которые нужно устранить. Внесите ограниченное структурное изменение, затем сравните известные случаи, ошибки и побочные эффекты с оригиналом.
- Что вы предоставляете
- Код и запрошенное структурное изменение.
- Что вы получите
- Черновик рефакторинга с сохранением предполагаемого поведения.
Посмотрите входные данные и результат.
Иллюстративные входные и выходные данные · учебный пример, а не реальный запуск WebAct
Полей ввода: Пример
Refactor this Python function without changing its result or empty-name error:
def label(name, loud):
if loud:
if not name:
raise ValueError("name required")
return name.upper()
if not name:
raise ValueError("name required")
return name.lower()Готовый пример
def label(name, loud):
if not name:
raise ValueError("name required")
return name.upper() if loud else name.lower()
Checks: label("Ada", True) → "ADA"; label("Ada", False) → "ada". An empty string raises ValueError("name required") in both modes.Добавьте эти данные в промпт и скопируйте его в WebAct, чтобы попробовать задачу. Ваш результат может отличаться от примера.
Решения и устранение проблем.
Может ли рефакторинг намеренно менять поведение ошибок?
Только если такое изменение входит в запрос. Иначе сохраните его или выделите в отдельное явное последующее решение.
Почему выделение общего кода меняет результат одной ветви?
Проверьте порядок выполнения, состояние и условия конкретной ветви. Похожий код может работать при разных допущениях.
Попробуйте на собственном источнике.
Замените пример своим материалом в промпте. Сохраните нужные требования и скопируйте задачу в WebAct.
Настроить и скопировать задачу ↑