передавать в контролер ссылку на систему(не знаю, что под этим понимается)
Так я об этом же. В контролёре передаётся указатель на систему, который сохраняется в vars пакета
Зачем его сохранять в var пакета?
http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path)) }) Вот пример хендлера, контролера. При получении запроса ему нужно его обработать как-то - для этого он обращается к Мейн части приложения, некому фасаду, который сохранён в vars пакета. Это указатель, который инициализируется извне пакета
Создаете объект с хендлерами и напихиваете хендлеры в сервер. В сами объекты сохраняете все необходимы даныые, логер, ДБ, очереди и всякую шелуху. Не надо ее в глобале держать.
Почитайте про Dependency Injection. Что-то прям в последнее время на эту тему прет.
Обсуждают сегодня