# Антипаттерн: Передача неиспользуемого параметра в конструктор **Контекст:** Пять хендлеров в проекте принимали `appEnv string` в конструкторе, но никогда его не использовали. ## Суть ```go func NewPlaceHandler(placeSvc *services.PlaceService, appEnv string) *PlaceHandler { return &PlaceHandler{placeSvc: placeSvc} // appEnv игнорируется } ``` **Проблемы:** - Вводит в заблуждение — следующий разработчик подумает, что appEnv важен - Мёртвый код - Нарушает YAGNI **Решение:** Убрать параметр. ```go func NewPlaceHandler(placeSvc *services.PlaceService) *PlaceHandler { return &PlaceHandler{placeSvc: placeSvc} } ``` **Когда нужен appEnv:** - `AuthHandler` — для управления `SameSite` и `Secure` флагами кук (легитимно) - `errors.go` — для скрытия деталей ошибок в production (легитимно через глобальную переменную `AppEnv`) - Для всех остальных — либо через глобальный `AppEnv`, либо не нужен ## Связанные заметки - [[architecture-overview]] - [[MOC-backend-patterns]] #golang #antipattern #yagni #code-review