SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Golang-nuts
Nii Nai
Esoko
Introduction
Who?
Rob Pike
Robert Griesemer
Ken Thompson
What is Go?
Unix philosophy + Systems Language
= Statically-typed language that feels dynamic,
reads simple and is clean
Axioms
Simple
Clean, concise syntax. Lightweight type system
makes for fun.
Have your cake and eat it. Who says you can't?
Orthogonal
A few orthogonal features works better than a
lot of overlapping ones.
No bloat.
Readable
Source code should make sense with little
context.
Fast builds
Achieves really fast build time by explicitly
specifying dependencies.
Features
● Statically-typed
● Compiled
● Type-safe and memory-safe
● Garbage collected
● Concurrent from inception
● Built for the web
● Support for functional programming
● Object oriented
● Explicit dependency
Demo: hello world
I Loves
Simple type system
Go is statically-typed, but inference saves a lot
of repetition.
Date
Working with dates was a different and awe
inspiring experience.
Talk about simple
All you have to do:
● specify incoming format
● call Parse
Multiple returns
Used heavily in the go standard library to return
error states for error checking.
Packaging
Go code lives in packages.
Packages contain type, function, variable, and
constant declarations.
Case determines visibility: Foo is exported, foo
is not.
Duck typing
Walks like a duck and swims like a duck and
quacks like a duck, I call that a duck.
Stuttering ...
I don’t miss this, not at all.
argsv
Working with command line arguments just got
easy.
Concurrency primitives
*nix:
find ~/sources/weather | grep loc.go | xargs wc
-l
Go equivalent:
goroutines connected by channels
Philosophy:
“Don’t communicate by sharing memory.
Instead, share memory by communicating.”
Killer tools
● gofmt
● godoc
● present
● play
● go get
● gofix
Eccentric
Simply put idol worshipping on my part.
And Go has pointers
Esoko & Go
Weather
Our weather forecast service powered by Go.
Check_sms
A nagios plugin to check for delivery of Alerts
and Price requests powered by Go.
Api_benchmark
Our Go tool to make requests to the Esoko API
checking for status and also providing
benchmarking of transactions powered by Go.
More information
Tour and Tutorials
Do not take my word for it, take the tour of Go
● golang.org
● tour.golang.org
Tour and tutorials … continued
You may find other talks by the Google Go
team interesting
● go get code.google.com/p/go.talks
● go get code.google.com/p/go.talks/present
And more and more youtube videos
Tour and tutorials … continued
Join the Go community
● golang-nuts google group
● Go+ on Google+
● @go_nuts at Twitter
Check out the Go Blog
● blog.golang.org
Thank you
Nii Nai
Esoko
http://www.esoko.com
@ttousai

Mais conteúdo relacionado

Mais procurados

seminar_ppt (copy)
seminar_ppt (copy)seminar_ppt (copy)
seminar_ppt (copy)
Kavin Babu
 
Javascriptbootcamp
JavascriptbootcampJavascriptbootcamp
Javascriptbootcamp
oscon2007
 

Mais procurados (12)

seminar_ppt (copy)
seminar_ppt (copy)seminar_ppt (copy)
seminar_ppt (copy)
 
BDD: Behind the Scenes
BDD: Behind the ScenesBDD: Behind the Scenes
BDD: Behind the Scenes
 
Prototype4Production Presented at FOSSASIA2015 at Singapore
Prototype4Production Presented at FOSSASIA2015 at SingaporePrototype4Production Presented at FOSSASIA2015 at Singapore
Prototype4Production Presented at FOSSASIA2015 at Singapore
 
Advantages of Python Learning | Why Python
Advantages of Python Learning | Why PythonAdvantages of Python Learning | Why Python
Advantages of Python Learning | Why Python
 
Quality Assurance in PostgreSQL
Quality Assurance in PostgreSQLQuality Assurance in PostgreSQL
Quality Assurance in PostgreSQL
 
Boosting python web apps with protocol buffers & grpc
Boosting python web apps with protocol buffers & grpcBoosting python web apps with protocol buffers & grpc
Boosting python web apps with protocol buffers & grpc
 
Zomg: Ruby Command Line and Ruby Debugging
Zomg: Ruby Command Line and Ruby DebuggingZomg: Ruby Command Line and Ruby Debugging
Zomg: Ruby Command Line and Ruby Debugging
 
Controlling NAO with Java
Controlling NAO with JavaControlling NAO with Java
Controlling NAO with Java
 
Successful Joomla migrations that don't hurt Search Engine Rankings
Successful Joomla migrations that don't hurt Search Engine RankingsSuccessful Joomla migrations that don't hurt Search Engine Rankings
Successful Joomla migrations that don't hurt Search Engine Rankings
 
Gogo Conference 2018
Gogo Conference 2018Gogo Conference 2018
Gogo Conference 2018
 
Coding with golang
Coding with golangCoding with golang
Coding with golang
 
Javascriptbootcamp
JavascriptbootcampJavascriptbootcamp
Javascriptbootcamp
 

Destaque

itl-concept
itl-conceptitl-concept
itl-concept
NellyL
 
Blues clues august 28 2013
Blues clues august 28 2013Blues clues august 28 2013
Blues clues august 28 2013
Halliegrant3
 
臻上集团推荐计划(18.08.13)
臻上集团推荐计划(18.08.13)臻上集团推荐计划(18.08.13)
臻上集团推荐计划(18.08.13)
UpOffshore
 
ysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operationysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operation
Hector Navarrete
 
Lis4380 f13-w7
Lis4380 f13-w7Lis4380 f13-w7
Lis4380 f13-w7
caseyyu
 
IT-liceum: six months 2013-14
IT-liceum: six months 2013-14IT-liceum: six months 2013-14
IT-liceum: six months 2013-14
NellyL
 
Lis4380 f13-w2-2
Lis4380 f13-w2-2Lis4380 f13-w2-2
Lis4380 f13-w2-2
caseyyu
 

Destaque (20)

Squidward
SquidwardSquidward
Squidward
 
All about e-agriculture
All about e-agricultureAll about e-agriculture
All about e-agriculture
 
itl-concept
itl-conceptitl-concept
itl-concept
 
Scholarships 101: Obstacles, Strengths & Clicking Submit
Scholarships 101: Obstacles, Strengths & Clicking SubmitScholarships 101: Obstacles, Strengths & Clicking Submit
Scholarships 101: Obstacles, Strengths & Clicking Submit
 
Running an Effective Meeting
Running an Effective MeetingRunning an Effective Meeting
Running an Effective Meeting
 
Catalog Colin Group
Catalog Colin GroupCatalog Colin Group
Catalog Colin Group
 
Blues clues august 28 2013
Blues clues august 28 2013Blues clues august 28 2013
Blues clues august 28 2013
 
Training center project September 2014
Training center project September 2014Training center project September 2014
Training center project September 2014
 
Overview of the Program Year
Overview of the Program YearOverview of the Program Year
Overview of the Program Year
 
Long division
Long division   Long division
Long division
 
臻上集团推荐计划(18.08.13)
臻上集团推荐计划(18.08.13)臻上集团推荐计划(18.08.13)
臻上集团推荐计划(18.08.13)
 
ysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operationysi-castaway-ctd-principles-of-operation
ysi-castaway-ctd-principles-of-operation
 
NLA brandon mellett
NLA brandon mellettNLA brandon mellett
NLA brandon mellett
 
RuralWeb Manual – how to make an explainer slide
RuralWeb Manual – how to make an explainer slideRuralWeb Manual – how to make an explainer slide
RuralWeb Manual – how to make an explainer slide
 
Lis4380 f13-w7
Lis4380 f13-w7Lis4380 f13-w7
Lis4380 f13-w7
 
IT-liceum: six months 2013-14
IT-liceum: six months 2013-14IT-liceum: six months 2013-14
IT-liceum: six months 2013-14
 
ANTONOMASIA AND CONVERSION
ANTONOMASIA AND CONVERSIONANTONOMASIA AND CONVERSION
ANTONOMASIA AND CONVERSION
 
Lis4380 f13-w2-2
Lis4380 f13-w2-2Lis4380 f13-w2-2
Lis4380 f13-w2-2
 
Understanding our Criminal Justice System
Understanding our Criminal  Justice SystemUnderstanding our Criminal  Justice System
Understanding our Criminal Justice System
 
Diversity and Inclusion
Diversity and InclusionDiversity and Inclusion
Diversity and Inclusion
 

Semelhante a Golang nuts (by Nii Nai at DevCongress 2013)

Django: Beyond Basics
Django: Beyond BasicsDjango: Beyond Basics
Django: Beyond Basics
arunvr
 

Semelhante a Golang nuts (by Nii Nai at DevCongress 2013) (20)

Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
Go fundamentals
Go fundamentalsGo fundamentals
Go fundamentals
 
Golang
GolangGolang
Golang
 
Golang introduction
Golang introductionGolang introduction
Golang introduction
 
Golang from Scala developer’s perspective
Golang from Scala developer’s perspectiveGolang from Scala developer’s perspective
Golang from Scala developer’s perspective
 
Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
 
go language- haseeb.pptx
go language- haseeb.pptxgo language- haseeb.pptx
go language- haseeb.pptx
 
Introduction to go, and why it's awesome
Introduction to go, and why it's awesomeIntroduction to go, and why it's awesome
Introduction to go, and why it's awesome
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
Beginning development in go
Beginning development in goBeginning development in go
Beginning development in go
 
Go lang
Go langGo lang
Go lang
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in php
 
Go for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B MeetupGo for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B Meetup
 
Fuzzing - Part 2
Fuzzing - Part 2Fuzzing - Part 2
Fuzzing - Part 2
 
Django: Beyond Basics
Django: Beyond BasicsDjango: Beyond Basics
Django: Beyond Basics
 
Golang, Future of Programming Language.
Golang, Future of Programming Language.Golang, Future of Programming Language.
Golang, Future of Programming Language.
 
Introduction to Programming in Go
Introduction to Programming in GoIntroduction to Programming in Go
Introduction to Programming in Go
 
Android is going to Go! - Android and goland - Almog Baku
Android is going to Go! - Android and goland - Almog BakuAndroid is going to Go! - Android and goland - Almog Baku
Android is going to Go! - Android and goland - Almog Baku
 
Android is going to Go! Android and Golang
Android is going to Go! Android and GolangAndroid is going to Go! Android and Golang
Android is going to Go! Android and Golang
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Golang nuts (by Nii Nai at DevCongress 2013)