33 lines
3.9 KiB
Markdown
33 lines
3.9 KiB
Markdown
---
|
||
name: feedback-no-unprompted-scope
|
||
description: Не делать лишних действий сверх того, что попросили — не выносить абстракции "на будущее", не додумывать причины
|
||
metadata:
|
||
type: feedback
|
||
---
|
||
|
||
Пользователь прямо указал: «ты делаешь много лишних действий которые тебя не просят». Конкретный кейс —
|
||
при рефакторинге `Controller::render()`/`renderContent()` (см. [[project-bicycle-overview]]) я вынес
|
||
расчёт каталога view в отдельный приватный метод `contentDir()` без реальной причины (вызывался из
|
||
одного места) — просто рефлекс «похожая логика — надо вынести», а не ответ на реальную потребность.
|
||
Пользователь спросил «мы где-то ещё будем использовать contentDir()?» не как команду переделать,
|
||
а как проверочный вопрос — заподозрил лишнюю абстракцию и хотел понять мою логику.
|
||
|
||
**Why:** Лишние абстракции/методы «про запас» усложняют код без пользы (см. также правило проекта —
|
||
не проектировать под гипотетические будущие требования) и создают у пользователя ощущение, что я
|
||
действую самостоятельно там, где не просили.
|
||
|
||
**How to apply:** Не выносить код в отдельный метод/абстракцию, если на это нет явного запроса или
|
||
явного текущего переиспользования (2+ реальных вызова прямо сейчас). Если сомневаюсь, нужна ли
|
||
абстракция — оставлять код инлайн, как было. Это не противоречит [[feedback-less-confirmation]]:
|
||
там речь про паузы-подтверждения на уже согласованных, обратимых шагах; здесь — про то, чтобы вообще
|
||
не расширять объём работы (лишние методы, лишний рефакторинг, лишние файлы) сверх того, что запросили.
|
||
Если вопрос пользователя похож на «а мы это ещё где-то используем/будем использовать?» — это, как
|
||
правило, не команда действовать, а проверка моей логики; сначала ответить прямо, не хвататься за
|
||
редактирование кода.
|
||
|
||
**Второй кейс (2026-08-12, реализация логина/2FA):** на шаге ввода кода из письма сам добавил кнопку
|
||
«Назад ко входу» (плюс обработку `back` в `LoginController`) — этого никто не просил, ни в обсуждении
|
||
2FA, ни в макете дашборда. Пользователь: «просто убери эта кнопка не нужна, она же ни где не пишется
|
||
ты сам это придумал?». Тот же паттерн, что и с `contentDir()`, но уже не про код-абстракцию, а про
|
||
UI-элемент — вывод: правило касается не только рефакторинга/абстракций, а вообще любого добавления
|
||
сверх того, что обсуждалось (лишняя кнопка/поле формы/пункт меню — тот же случай, что и лишний метод). |