Когда инициализация через init() лучше не использовать или использовать осторожно?
Что хотят услышать интервьюеры:
Суть:
Ответ:
init() выполняется до main и часто используется для регистрации, но усложняет контроль зависимостей.
Пример:
func init(){ registry.Add(driver) } Практический акцент: Оцените trade-off: простота, производительность, тестируемость, связность пакетов и цена поддержки.
Типичная ошибка: прятать важную бизнес-логику в init и получать неожиданные side effects.
Как отвечать на собеседовании: Объясните не только синтаксис, но и почему Go предпочитает простые, явные правила и небольшие пакеты.