Config struct — передаёшь структуру с параметрами: NewServer(Config{Port: 8080}). Просто и понятно, но все поля должны быть заполнены или иметь zero-value defaults. Functional options — NewServer(WithPort(8080), WithTimeout(5*time.Second)). Гибче: можно валидировать каждую опцию, давать умные defaults, расширять API без breaking changes. Для библиотек обычно выбирают functional options.
Functional options vs config struct?
Middle
264 просмотровAFK Offer AI
Как работает t.Run?