the lead developer: go – i made all the mistakes so you don't have to
TRANSCRIPT
James AbleyTechnical ArchitectGovernment Digital Service@jabley
GDSJames Abley
Go – I made all the mistakes
GDSJames Abley
What it is, important concepts, what’s good and what’s not
GDSJames Abley
What is Go?
GDSJames Abley
Open source programming language that makes it easy to build simple, reliable, and efficient software
GDSJames Abley
Statically typed, with fast compile times
GDSJames Abley
Statically linked, native binaries
GDSJames Abley
What’s important?
GDSJames Abley
CommunicatingSequentialProcesses
GDSJames Abley
InputOutputConcurrency
GDSJames Abley
GDSJames Abley
What’s good?
GDSJames Abley
Religious formatting wars
GDSJames Abley
The standard library defines AST parsing and serialisation
GDSJames Abley
Crossing Refactoring’s Rubicon
GDSJames Abley
Backward compatibility
GDSJames Abley
Testing
GDSJames Abley
GDSJames Abley
Code coverage
GDSJames Abley
GDSJames Abley
Benchmarking
GDSJames Abley
GDSJames Abley
Profiling
GDSJames Abley
GDSJames Abley
GDSJames Abley
Garbage collection
GDSJames Abley
GDSJames Abley
Ecosystem
GDSJames Abley
What’s not good?
GDSJames Abley
Dependency management
GDSJames Abley
Lots of community options, oh my!
GDSJames Abley
What’s the sweet spot?
GDSJames Abley
Summary
GDSJames Abley
CommunicatingSequentialProcesses
GDSJames Abley
Great tooling
GDSJames Abley
https://gds.blog.gov.uk/jobs/
GDSJames Abley
• https://blog.golang.org/go-fmt-your-codehttp://blog.golang.org/introducing-gofixhttp://danluu.com/monorepo/reposhttps://github.com/gorilla/context/pull/21https://www.dreamsongs.com/RiseOfWorseIsBetter.htmlhttps://joearms.github.io/2013/04/05/concurrent-and-parallel-programming.htmlhttp://blog.osteele.com/posts/2004/11/ides/http://martinfowler.com/articles/refactoringRubicon.htmlhttp://godoc.org/golang.org/x/toolshttps://twitter.com/brianhatfield/status/634166123605331968
James AbleyTechnical ArchitectGovernment Digital Service@jabley