I'm new to web development and searching for some good resources.
评论:
ZenSwordArts:
from_cork:As a good overview of the whole topic of web development (with and without go), have a look at this free book.
It was written by the author of the beego framework. He knows what he is talking about.
dgryski:I'm one of the senior Go developers at the company I work for. Recently someone asked me to compile decent resources for learning the language. I know you asked specifically for back-end development resources, but since Go is really targeted for server development, I figured I'd share the list I compiled. If you just want to learn http basics, check out the net/http package to get the basics down, and then I'd recommend taking a look at Gin - https://github.com/gin-gonic/gin. Otherwise, I hope you find some of these other resources useful - I believe all of them can help complement back-end development.
Beginning Resources
http://tour.golang.org/ - Golang Tour - Interactive tour and tutorial of golang in a web browser.
http://golang.org/doc/code.html - Teaches you how to use the Go Tools and walks you through writing a small Go package.
https://golang.org/ref/spec - The Go language specification.
http://golang.org/doc/effective_go.html - Details how to write idiomatic Go and provides detailed and in depth information about how to write quality Go code.
http://www.golangbootcamp.com/book/ -The Go Bootcamp Book, everything you need to know to get started with Go, by Matt Aimonetti.
http://golang.org/doc/go_faq.html - The Go language FAQ
https://github.com/golang/go/wiki/Style - The Go style guide
http://gophervids.appspot.com/ - Damian Gryski’s Gophervids is an aggregator for recordings of Go meetups and conferences.
http://www.goinggo.net/ - Going Go Programming by William Kennedy
Go Data Types and Concurrency
http://blog.golang.org/go-slices-usage-and-internals - Covers how to use Slices - Dynamic Arrays - one of Go's three primary datatypes.
https://blog.golang.org/go-maps-in-action - Details how to use Maps - Hashes - the second of Go's three primary datatypes.
https://gobyexample.com/channels - Explains how to use channels - Message Passing between different contexts - the third and last of Go's primary datatypes.
https://www.golang-book.com/books/intro/10 - Explains basic concurrency patterns and the usage of channels in Go.
https://blog.golang.org/context - Covers Contexts in Concurrent patterns.
https://blog.golang.org/advanced-go-concurrency-patterns - A video and set of slides by Rob Pike (One of the primary authors of Go) on Advanced Concurrency Patterns
Structs and Interfaces
https://www.golang-book.com/books/intro/9 - Explains the basics of structs and interfaces.
http://golang.org/pkg/builtin/ - The documentation page for package builtin.
https://github.com/a8m/go-lang-cheat-sheet - Quick reference for Go that is surprisingly detailed.
IntellectualReserve:
dgryski:I'll add to the question on this thread.
Can anyone suggest some reading on how to achieve ACID compliance when coordinating transactions across multiple microservices?
Distributed transactions are hard. 2PC is common, but coordination and errors need to be carefully handled. In general this is an active research topic.
