Hacker News new | ask | show | jobs
by raviatluri 1096 days ago
https://blog.khanacademy.org/statically-typed-context-in-go/

i found this to be a good approach for injecting dependencies, especially when the methods implement an interface

1 comments

Don't create a custom context type. This will make it more difficult to interop with any other library that uses the normal context.Context.[0]

Furthermore, why is that code using string keys for the context? It's recommended in the context package documentation that context keys should always be an unexported type, so that the key can never collide with a different key.[1] It's common to define accessor functions which are type safe

[0] https://google.github.io/styleguide/go/decisions.html#custom...

[1] https://pkg.go.dev/context#WithValue

Agreed, custom context types don’t work for libraries.

But, i am finding them useful in building a pipeline composer similar to https://www.reddit.com/r/RedditEng/comments/z137m3/from_serv...