Skip to content

Comment on Dependency Injection with Goparent

Comments

I was referring to Go's magic func init()

Putting that in your files, let's say:

  db.go func init() => handle global DB's...

  templates.go func init() => handle HTML templates...

  settings.go func init() => load some settings...
All fired automatically prior to your applications main() entry point WITHOUT needing to pollute main() with initDB(); initTemplates(); initSettings() etc. etc.

They're trying to pass the objects created at startup into other objects, so that dependencies are explicit and can be mocked out in unit tests. You can't do this with init(), which always takes no arguments and returns no values.

    > I was referring to Go's magic func init()
I know you were; I'm arguing that components shouldn't need an explicit initialization step, but rather they should be initialized as part of their `NewFoo` constructor.
AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.