Upload
pieter-joost-van-de-sande
View
260
Download
0
Tags:
Embed Size (px)
DESCRIPTION
A short lightning talk I gave at the first Golang meeting in Amsterdam
Citation preview
Wercker’s path to GoWhere we got convinced, disappointed and excited
Micha Hernandez van Leuffen @miesPieter Joost van de Sande @pjvds
WE’RE BUILDING AN INTEGRAL PLATFORM FOR HOW SOFTWARE GETS DELIVERED TO THE INTERNET AND THE CLOUD
“”
Pitch
Wercker is a collaborative continuous delivery platform that helps developers reduce risk and eliminate waste in their software development process by enabling them to test and deploy their code often in a hassle-free way.
Excitement!
Excitement!
Challenges at wercker
✓ We are building a mission critical system
✓ We have the need to scale
✓ When we fail we want to recover and continue
✓ We do dive system level deep
Design goals of Go
LOVE AT FIRST SIGHT!
✓ Compilations efficiency
✓ Statically typed
✓ Feels dynamically typed
✓ Compiles to machine code
✓ Single deploy unit
✓ Used by other companies in our space
Installing and setupHow we got convinced, excited and disappointed
Installing Go
We needed an editor
GOSUBLIME
✓ Syntax highlighting
✓ Go format on file save
✓ Sublime build system integration
✓ Compiles to machine code
✓ Quickly jump to error reported code
✓ Go to definition
Installing Go
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublime
It all started with a KataThis is where the fun starts
Coding Kata STRING CALCULATOR
Go TestBuild in test driven development support
Writing tests is easy
Running tests is easy
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Simple languageGo is pretty bitter, and I like it that way!
Unused variables are errors
KEYNOTE SUBJECT 21 April 2013 - CONFIDENTIAL
Unused imports are errors
KEYNOTE SUBJECT 21 April 2013 - CONFIDENTIAL
Handful of keywords
break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Bitter language
Handful of keywords
break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var
?
Format is always the same
KEYNOTE SUBJECT 21 April 2013 - CONFIDENTIAL
before go format
Format is always the same
KEYNOTE SUBJECT 21 April 2013 - CONFIDENTIAL
after go format
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Bitter language
go format
Even the compiler output is a boolean
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Bitter language
go format
no warnings, only errors
Flexible typing
KEYNOTE SUBJECT 21 April 2013 - CONFIDENTIAL
signature based polymorphism
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Bitter language
go format
no warnings, only errors
dynamic behavior
Error mechanism that makes you think
KEYNOTE SUBJECT 21 April 2013 - CONFIDENTIAL
Not sure whether it’s good or bad
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Bitter language
go format
no warnings, only errors
dynamic behavior error
handling
Import paths not pull request friendlyCode that works against pull requests?
Import paths not pull request friendlyCode that works against pull requests?
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Bitter language
go format
no warnings, only errors
dynamic behavior error
handling
forkingunfriendly
Package management
WHAT WE LOVE
✓ Simple, run go get
✓ Single way to import a package
✓ Import is done in the code file
✓ You can only import packages you use
✓ You always use HEAD
✓ Packages are still pretty young
WHAT WE ....
Love for GoIt’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Bitter language
go format
no warnings, only errors
dynamic behavior error
handling
forkingunfriendly
Package management
Import paths not pull request friendlyCode that works against pull requests?
Where will our journey end?It’s almost like a real relationship
Easy to setup
GoSublimeOut of the box
testing support
Bitter language
go format
no warnings, only errors
dynamic behavior error
handling
forkingunfriendly
Package management
Thank you very much!
Pieter Joost van de Sande@pjvds
Micha Hernandez van Leuffen@mies