I'm working on a training course (text/video) devoted to Golang. Curious if there are any (advanced?) topics, which would definitely be worth to add to the course. Any ideas/recommendations?
Relevant to my interests! Here's some stuff I would have enjoyed learning prior to learning it the hard way:
a) Databases. What's the right way to work with them in Golang?
b) Suppose you're building an API which has some shared state. (Like, I don't know, a stock exchange's order book or something, to pick an example randomly.) What's the best way to model that such that you can access it concurrently in an arbitrary number of simultaneous HTTP requests?
c) Supposing that one understands goroutines at a Golang 101 level, where does one go from there? I ended up having lots of fun on e.g. fanning out data incoming from N sources to one channel back out to M consumers which each need a copy of everything on that channel. This felt excessively painful to me. How do I do it in a way which is not excessively painful?
+1. I've been through a couple of tutorials and I now know and love golang. I would like someone to dive in a little deeper and demonstrate golang's strength.
Evolution? Okay, maybe this is political, but in a training course I'd really need to see how a language has evolved to meet new challenges. Because if it's not a top-5 language, and it's not evolving, then why should someone care?
1. Better understanding of goroutines & channels (what patio11 already mentioned).
2. Some more insight into error handling (maybe something on the lines of http://www.golangpatterns.info/error-handling)
11 comments
[ 5.0 ms ] story [ 36.0 ms ] threada) Databases. What's the right way to work with them in Golang?
b) Suppose you're building an API which has some shared state. (Like, I don't know, a stock exchange's order book or something, to pick an example randomly.) What's the best way to model that such that you can access it concurrently in an arbitrary number of simultaneous HTTP requests?
c) Supposing that one understands goroutines at a Golang 101 level, where does one go from there? I ended up having lots of fun on e.g. fanning out data incoming from N sources to one channel back out to M consumers which each need a copy of everything on that channel. This felt excessively painful to me. How do I do it in a way which is not excessively painful?
APIs - very good point. Thanks. I haven't thought about it, but will definitely add an APIs chapter.
As for the c), this one probably requires picking some good use case with further implementation/explanation. Thanks for the food for thought.
http://go-database-sql.org/
how to port a ruby, python or java code to golang would be useful.
there are libraries like gox, but I would like a good tutorial to cross platform applications.
personally I would like to learn to build gui apps, android apps in go.
+1. I would love to see "Golang for X dev" series of tutorials
gui - this is an interesting one. Thanks! I'll try to cover it.
Database examples need to provide instructions for getting to a working configuration, testing with a different database, etc.
honestly go look at Stack overflow and see where people get stuck.