Slide 1

Slide 1 text

An Introduction Shane Logsdon Go  

Slide 2

Slide 2 text

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

Slide 18

Slide 18 text

Questions? Twitter: @shanelogsdon GitHub: @slogsdon Thanks