Go: An Introduction

Go: An Introduction

An introduction to the Go programming language. Deck was created for and targeted at a lunch and learn for developers at Blackstone Media (http://www.blackstonemedia.com/) and StarkNine (http://www.starknine.com/) in Louisville, KY.

Referenced Links:
- https://github.com/slogsdon/b (for code walkthrough)
- http://golang.org/
- http://tour.golang.org/
- http://godoc.org/

Presentation can be viewed at http://youtu.be/SI-okTfauyw

033132c341296d7f5e5b41e871178418?s=128

Shane Logsdon

June 06, 2014
Tweet

Transcript

  1. An Introduction Shane Logsdon Go  

  2. Why Use Go •  Standard Library •  Tooling •  Compiling

    •  Concurrency •  Deployment •  And more
  3. 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
  4. Tooling •  go fmt •  go test •  go doc

    •  Community supplied
  5. Compiling •  Compilation within seconds •  No waiting for VM

    to spin up •  Target multiple platforms with cross compilation •  Increase development efficiency
  6. Concurrency •  Goroutines •  lightweight asynchronous “processes” •  Channels • 

    transfer data between goroutines •  Example •  server handles individual requests in separate goroutines
  7. Deployment •  Can be single binary file •  Built for

    host platform and OS •  Quick compile process -> build on host •  Easy integration with CI/CD services
  8. Basic Overview (with examples)

  9. Basic Overview Variables

  10. Basic Overview Exported/Unexported

  11. Basic Overview Error Checking

  12. Basic Overview Struct Composition

  13. Basic Overview Interfaces

  14. Basic Overview Goroutines

  15. Basic Overview Channels

  16. Code Walkthrough https://github.com/slogsdon/b

  17. See Also •  golang.org •  tour.golang.org •  godoc.org

  18. Questions? Twitter: @shanelogsdon GitHub: @slogsdon Thanks