Лайфхак: чтобы проводить ревью, а не «ставить галочки», вставьте код коллеги в промпт ниже. Нейросеть предложит конкретные точки для рефакторинга, которые можно отметить в комментариях.
Промпт:
Отрефактори приведённый ниже код, сохранив точное поведение. Главные цели (в порядке приоритета): 1) поведение без изменений; 2) читабельность; 3) снижение/упрощение сложности; 4) улучшение структуры и соблюдение принципов SOLID.
Обязательные ограничения:
- Нельзя менять публичные сигнатуры (имена и параметры публичных функций/методов, публичные классы и их публичные интерфейсы).
- Не менять внешние контракты (формат входов/выходов, исключения, побочные эффекты), если явно не согласовано.
Ожидаемый выход (deliverables):
1) Unified diff (git-style unified diff) с изменениями — только изменения, применимые к файлам. Если создаёте новые файлы, укажите их в diff как new file mode.
2) Полный итоговый вариант рефакторнутого(ых) файла(ов) (после изменений) для быстрой проверки.
3) Минимальный набор юнит-тестов или скрипт/команды для воспроизведения и проверки, что поведение идентично исходному (если исходных тестов не было, создайте базовые тесты покрывающие ключевые сценарии).
4) Короткая секция «Ключевые решения» — по каждому существенному изменению объяснить:
- Что было изменено (строки/функция/класс);
- Почему (чёткая связь с читабельностью/сложностью/структурой/SOLID);
- Влияние на поведение, производительность и сложность (оценка O-нотации или замеры при возможности);
- Потенциальные риски/ограничения.
5) Сводка применённых принципов SOLID: для каждого принципа — что конкретно сделано (например: «SRP: класс X разделён на A и B, т.к. имел две ответственности»).
6) Commit-style summary: короткий заголовок (<= 50 символов) и 1-2 абзаца описания.
7) Если какое-то требование невозможно выполнить (например, воспроизвести тесты), явно укажите причину и предложите компромисс.
Формат вывода:
- Первой секцией выведите unified diff (если изменений нет — верните комментарий и пояснение почему).
- Далее — «Полные файлы после рефакторинга».
- Затем — «Юнит-тесты / Проверка» и инструкция как запускать (команды).
- Завершите «Ключевыми решениями» и «Commit summary».
<вставьте исходный код здесь>
🐸Библиотека шарписта
#буст