Why Use Go
• Standard Library
• Tooling
• Compiling
• Concurrency
• Deployment
• And more
Slide 3
Slide 3 text
Standard Library
• Provides large chunk of necessary
functionality
• encoding/json & encoding/xml
• flag
• io/ioutil
• net/http
• net/http/httptest
• testing
• Etc.
• External libraries offer convenience
Slide 4
Slide 4 text
Tooling
• go fmt
• go test
• go doc
• Community supplied
Slide 5
Slide 5 text
Compiling
• Compilation within seconds
• No waiting for VM to spin up
• Target multiple platforms with cross
compilation
• Increase development efficiency
Slide 6
Slide 6 text
Concurrency
• Goroutines
• lightweight asynchronous “processes”
• Channels
• transfer data between goroutines
• Example
• server handles individual requests in separate
goroutines
Slide 7
Slide 7 text
Deployment
• Can be single binary file
• Built for host platform and OS
• Quick compile process -> build on host
• Easy integration with CI/CD services
Slide 8
Slide 8 text
Basic Overview
(with examples)
Slide 9
Slide 9 text
Basic Overview
Variables
Slide 10
Slide 10 text
Basic Overview
Exported/Unexported
Slide 11
Slide 11 text
Basic Overview
Error Checking
Slide 12
Slide 12 text
Basic Overview
Struct Composition
Slide 13
Slide 13 text
Basic Overview
Interfaces
Slide 14
Slide 14 text
Basic Overview
Goroutines
Slide 15
Slide 15 text
Basic Overview
Channels
Slide 16
Slide 16 text
Code Walkthrough
https://github.com/slogsdon/b
Slide 17
Slide 17 text
See Also
• golang.org
• tour.golang.org
• godoc.org