Top Banner
James Abley Technical Architect Government Digital Service @jabley
38

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

Apr 08, 2017

Download

Software

James Abley
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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