Skip to content

[epic] Аудит дублирования кода: дедуп и упрощение #584

@axisrow

Description

@axisrow

Зонтичный трекер по результатам аудита всего проекта на дублирование и возможности упрощения (xhigh-effort: 4 параллельных аудитора по областям + ручная верификация чтением кода). Рабочее дерево чистое на коммите f77b52e.

Кодовая база зрелая — utils.py, _lifecycle.py (17 файлов), _batch.py показывают, что дедуп уже идёт. Осталось несколько пластов, где паттерн доказан, а тиражируется руками.

Дочерние задачи (по убыванию ROI)

Рекомендованный порядок

  1. refactor(_bidding_strategy): дедуп budget-билдеров и пар search/network стратегий (~2000 строк) #581 — максимум дублей в одном файле + скрытое поведенческое расхождение, опасное для копипаст-поддержки.
  2. refactor(commands): фабрика make_get_command для идентичного скелета get (26 файлов) #582 — фабрика make_get_command (паттерн уже доказан _lifecycle.py).
  3. refactor(v4, coverage): общие v4-хелперы и единая captcha-детекция #583 — быстрые низкорисковые победы.

Намеренно НЕ выносится

  • CAMPAIGN_TYPE_BUILDERS реестр — задел под расширение (campaigns bidding strategies: TextCampaign search branch #361–369), не дубль.
  • parse_ids vs add_criteria_csv и контракт пустого SelectionCriteria — стиль/контракт ошибок, вне темы дедупа.

Дисциплина при рефакторинге

Все находки сохраняют CLI-поверхность 1:1: i18n-ключи, тексты ошибок и --dry-run payload должны остаться байт-идентичными. Гейты test_wsdl_parity_gate.py, test_dry_run.py, test_api_coverage.py — обязательны к прохождению.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions