Golang
Functional options в Go выглядят красиво ровно до момента, пока их не приходится читать через год.
Я понимаю, зачем этот паттерн придумали: гибкость, дефолты, расширяемость, всё такое. Но в реальном коде он часто превращает простую настройку в цепочку магии.
Особенно странно видеть это в json/v2.
Иногда честный Options struct лучше любой “элегантной” функции-конфигуратора. Открыл код - сразу видишь поля, значения и намерение. Без прыжков по WithSomething, без скрытых дефолтов, без угадывания порядка вызовов.
Go всегда был силён простотой. И именно поэтому обычная структура с настройками часто выглядит более “go-way”, чем модный паттерн ради паттерна.
Непопулярное мнение: не каждая гибкость стоит ухудшения читаемости. Если у вас установлено приложение,
вы можете сразу перейти в канал