the lead developer: go – i made all the mistakes so you don't have to

38
James Abley Technical Architect Government Digital Service @jabley

Upload: james-abley

Post on 08-Apr-2017

1.454 views

Category:

Software


1 download

TRANSCRIPT

Page 1: The Lead Developer: Go – I made all the mistakes so you don't have to

James AbleyTechnical ArchitectGovernment Digital Service@jabley

Page 2: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Go – I made all the mistakes

Page 3: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

What it is, important concepts, what’s good and what’s not

Page 4: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

What is Go?

Page 5: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Open source programming language that makes it easy to build simple, reliable, and efficient software

Page 6: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Statically typed, with fast compile times

Page 7: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Statically linked, native binaries

Page 8: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

What’s important?

Page 9: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

CommunicatingSequentialProcesses

Page 10: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

InputOutputConcurrency

Page 11: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Page 12: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

What’s good?

Page 13: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Religious formatting wars

Page 14: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

The standard library defines AST parsing and serialisation

Page 15: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Crossing Refactoring’s Rubicon

Page 16: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Backward compatibility

Page 17: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Testing

Page 18: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Page 19: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Code coverage

Page 20: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Page 21: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Benchmarking

Page 22: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Page 23: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Profiling

Page 24: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Page 25: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Page 26: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Garbage collection

Page 27: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Page 28: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Ecosystem

Page 29: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

What’s not good?

Page 30: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Dependency management

Page 31: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Lots of community options, oh my!

Page 32: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

What’s the sweet spot?

Page 33: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Summary

Page 34: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

CommunicatingSequentialProcesses

Page 35: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

Great tooling

Page 36: The Lead Developer: Go – I made all the mistakes so you don't have to

GDSJames Abley

https://gds.blog.gov.uk/jobs/

Page 37: The Lead Developer: Go – I made all the mistakes so you don't have to

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

Page 38: The Lead Developer: Go – I made all the mistakes so you don't have to

James AbleyTechnical ArchitectGovernment Digital Service@jabley