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
282 просмотровAFK Offer AI
Как работает sync.Map внутри?