SlideShare uma empresa Scribd logo
1 de 66
Learning Go From Hello
World to Web Service
Eric Potter
Learning Go From Hello
World to Web Service
Eric Potter
Background
Before we go
4
Creators
Rob Pike
• Worked at Bell
Labs and Google
• co-creator of
UTF-8
Ken Thompson
• Designed and
implemented the
original Unix
Robert Griesemer
• Worked on
Google's V8
JavaScript engine
G
e
t
G
o
i
n
g
5
Fast
G
e
t
G
o
i
n
g
6
G
e
t
G
o
i
n
g
7
Tools
All systems go
8
Installation
P
R
E
S
E
N
T
A
T
I
O
N
T
I
T
L
E
9
Go CLI
• go run
• go build
• go mod init
• go test
• go get
• go fmt
• etc
G
e
t
G
o
i
n
g
10
IDEs
VS Code GoLand ($)
G
e
t
G
o
i
n
g
11
Hello World
Demo
G
e
t
G
o
i
n
g
12
Hello World
G
e
t
G
o
i
n
g
13
Types
Go your own way
14
Basic Types
• bool
• string
• int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64
• rune // alias for int32 that represents a Unicode code point
• float32, float64
• complex64, complex128
G
e
t
G
o
i
n
g
15
Variable Declaration
G
e
t
G
o
i
n
g
16
Syntax
Let it go
17
Terse
; ( )
G
e
t
G
o
i
n
g
18
Notable Omissions
++i
do {}
while
G
e
t
G
o
i
n
g
19
Function Syntax
C#
public <returnType> <name> (<args>)
Go
func <name> (<args>) <returnType>
G
e
t
G
o
i
n
g
20
Fizz Buzz
Demo
G
e
t
G
o
i
n
g
21
Fizz Buzz
G
e
t
G
o
i
n
g
22
Questions
G
e
t
G
o
i
n
g
23
Exercise 1
Euler 1
1) If we list all the natural numbers below 10 that are multiples of 3
or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
2) The Math.Sin values for 2 is positive and the value for 5 is
negative. Print the sum of the positive sine values from the input
between 0 and 10.
If you get done, try Euler 2 (https://projecteuler.net/problem=2)
G
e
t
G
o
i
n
g
24
Euler 1
G
e
t
G
o
i
n
g
25
G
e
t
G
o
i
n
g
26
Arrays
Go home
28
Declaring Arrays
G
e
t
G
o
i
n
g
29
Accessing Array Elements
G
e
t
G
o
i
n
g
30
G
e
t
G
o
i
n
g
31
Iterate over an Array
G
e
t
G
o
i
n
g
32
The size is part of the type
G
e
t
G
o
i
n
g
33
Slices
Go home
34
G
e
t
G
o
i
n
g
35
Dynamic Sizing
G
e
t
G
o
i
n
g
36
Ranges
G
e
t
G
o
i
n
g
37
Classes
Go home
38
Classes
Go home
39
Packages & Structs
Defining a Struct
G
e
t
G
o
i
n
g
40
G
e
t
G
o
i
n
g
41
G
e
t
G
o
i
n
g
42
Associating Functions with Structs
G
e
t
G
o
i
n
g
43
Interfaces
Go home
44
Defining an Interface
G
e
t
G
o
i
n
g
45
Questions
G
e
t
G
o
i
n
g
46
Exercise 2
Create a GIF
Using the image/gif and image/color packages, create a gif of a
checker board.
Using the same libraries, create an animated gif of a sine wave.
G
e
t
G
o
i
n
g
47
Concurrency
You go your way,
I’ll go mine
48
Concurrent Functions
Demo
G
e
t
G
o
i
n
g
49
G
e
t
G
o
i
n
g
50
Channels
Go change the
channel
51
TextEntryWithTimeout
Demo
G
e
t
G
o
i
n
g
52
TextEntryWithTimeout
G
e
t
G
o
i
n
g
53
WaitGroups
Go wait in the corner
54
G
e
t
G
o
i
n
g
55
Questions
G
e
t
G
o
i
n
g
56
Exercise 3
Create a GIF Concurrently
Modify your code that creates a sine wave gif to create the file
concurrently while the user enters the output file name.
G
e
t
G
o
i
n
g
57
G
e
t
G
o
i
n
g
58
G
e
t
G
o
i
n
g
59
Web Services
Go on
60
net/http Package
• The core functionality is in a standard library.
• There are packages like gin that provide structure.
G
e
t
G
o
i
n
g
61
net/http
G
e
t
G
o
i
n
g
62
Data Access
Go get it
63
database/sql
• Go uses a driver and plugin model.
• There are larger frameworks like Gorm
G
e
t
G
o
i
n
g
64
database/sql
G
e
t
G
o
i
n
g
65
Questions
G
e
t
G
o
i
n
g
66
Exercise 4
Web Services
Create a webservice that returns the sine of a given number.
Create a webservice that returns your sine wave GIF
G
e
t
G
o
i
n
g
67
Thank you
Eric Potter • @pottereric •
HumbleToolsmith.com
G
e
t
G
o
i
n
g
69

Mais conteúdo relacionado

Mais procurados

Q4.11: Using GCC Auto-Vectorizer
Q4.11: Using GCC Auto-VectorizerQ4.11: Using GCC Auto-Vectorizer
Q4.11: Using GCC Auto-VectorizerLinaro
 
ベイズ最適化によるハイパラーパラメータ探索
ベイズ最適化によるハイパラーパラメータ探索ベイズ最適化によるハイパラーパラメータ探索
ベイズ最適化によるハイパラーパラメータ探索西岡 賢一郎
 
ORと経済学の「結婚」問題
ORと経済学の「結婚」問題ORと経済学の「結婚」問題
ORと経済学の「結婚」問題Yosuke YASUDA
 
計算スケジューリングの効果~もし,Halideがなかったら?~
計算スケジューリングの効果~もし,Halideがなかったら?~計算スケジューリングの効果~もし,Halideがなかったら?~
計算スケジューリングの効果~もし,Halideがなかったら?~Norishige Fukushima
 
Categorical reparameterization with gumbel softmax
Categorical reparameterization with gumbel softmaxCategorical reparameterization with gumbel softmax
Categorical reparameterization with gumbel softmaxぱんいち すみもと
 
制限ボルツマンマシン入門
制限ボルツマンマシン入門制限ボルツマンマシン入門
制限ボルツマンマシン入門佑馬 斎藤
 
Deep Learning Based Voice Activity Detection and Speech Enhancement
Deep Learning Based Voice Activity Detection and Speech EnhancementDeep Learning Based Voice Activity Detection and Speech Enhancement
Deep Learning Based Voice Activity Detection and Speech EnhancementNAVER Engineering
 
Prediction of Wild Type Enzyme Thermostability From Amino Acid Sequences
Prediction of Wild Type Enzyme Thermostability From Amino Acid SequencesPrediction of Wild Type Enzyme Thermostability From Amino Acid Sequences
Prediction of Wild Type Enzyme Thermostability From Amino Acid SequencesAlireza Kashani
 
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own datasetYOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own datasetmoto2g
 
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるときunique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるときShintarou Okada
 
Deep learning with Keras
Deep learning with KerasDeep learning with Keras
Deep learning with KerasQuantUniversity
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナドYoshihiro Mizoguchi
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜Tomoki Yoshida
 
第14回 配信講義 計算科学技術特論B(2022)
第14回 配信講義 計算科学技術特論B(2022)第14回 配信講義 計算科学技術特論B(2022)
第14回 配信講義 計算科学技術特論B(2022)RCCSRENKEI
 
EMアルゴリズム
EMアルゴリズムEMアルゴリズム
EMアルゴリズムmoritama1515
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning CompilerTae Young Lee
 
パターン認識と機械学習 13章 系列データ
パターン認識と機械学習 13章 系列データパターン認識と機械学習 13章 系列データ
パターン認識と機械学習 13章 系列データemonosuke
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
Zynqで始めるUSB開発-FPGAとARMで動く USBオーディオデバイスの実例とともに-
Zynqで始めるUSB開発-FPGAとARMで動くUSBオーディオデバイスの実例とともに-Zynqで始めるUSB開発-FPGAとARMで動くUSBオーディオデバイスの実例とともに-
Zynqで始めるUSB開発-FPGAとARMで動く USBオーディオデバイスの実例とともに-mmitti
 
データ解析のための統計モデリング入門 1~2章
データ解析のための統計モデリング入門 1~2章 データ解析のための統計モデリング入門 1~2章
データ解析のための統計モデリング入門 1~2章 itoyan110
 

Mais procurados (20)

Q4.11: Using GCC Auto-Vectorizer
Q4.11: Using GCC Auto-VectorizerQ4.11: Using GCC Auto-Vectorizer
Q4.11: Using GCC Auto-Vectorizer
 
ベイズ最適化によるハイパラーパラメータ探索
ベイズ最適化によるハイパラーパラメータ探索ベイズ最適化によるハイパラーパラメータ探索
ベイズ最適化によるハイパラーパラメータ探索
 
ORと経済学の「結婚」問題
ORと経済学の「結婚」問題ORと経済学の「結婚」問題
ORと経済学の「結婚」問題
 
計算スケジューリングの効果~もし,Halideがなかったら?~
計算スケジューリングの効果~もし,Halideがなかったら?~計算スケジューリングの効果~もし,Halideがなかったら?~
計算スケジューリングの効果~もし,Halideがなかったら?~
 
Categorical reparameterization with gumbel softmax
Categorical reparameterization with gumbel softmaxCategorical reparameterization with gumbel softmax
Categorical reparameterization with gumbel softmax
 
制限ボルツマンマシン入門
制限ボルツマンマシン入門制限ボルツマンマシン入門
制限ボルツマンマシン入門
 
Deep Learning Based Voice Activity Detection and Speech Enhancement
Deep Learning Based Voice Activity Detection and Speech EnhancementDeep Learning Based Voice Activity Detection and Speech Enhancement
Deep Learning Based Voice Activity Detection and Speech Enhancement
 
Prediction of Wild Type Enzyme Thermostability From Amino Acid Sequences
Prediction of Wild Type Enzyme Thermostability From Amino Acid SequencesPrediction of Wild Type Enzyme Thermostability From Amino Acid Sequences
Prediction of Wild Type Enzyme Thermostability From Amino Acid Sequences
 
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own datasetYOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
 
unique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるときunique_ptrにポインタ以外のものを持たせるとき
unique_ptrにポインタ以外のものを持たせるとき
 
Deep learning with Keras
Deep learning with KerasDeep learning with Keras
Deep learning with Keras
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
 
第14回 配信講義 計算科学技術特論B(2022)
第14回 配信講義 計算科学技術特論B(2022)第14回 配信講義 計算科学技術特論B(2022)
第14回 配信講義 計算科学技術特論B(2022)
 
EMアルゴリズム
EMアルゴリズムEMアルゴリズム
EMアルゴリズム
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning Compiler
 
パターン認識と機械学習 13章 系列データ
パターン認識と機械学習 13章 系列データパターン認識と機械学習 13章 系列データ
パターン認識と機械学習 13章 系列データ
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
Zynqで始めるUSB開発-FPGAとARMで動く USBオーディオデバイスの実例とともに-
Zynqで始めるUSB開発-FPGAとARMで動くUSBオーディオデバイスの実例とともに-Zynqで始めるUSB開発-FPGAとARMで動くUSBオーディオデバイスの実例とともに-
Zynqで始めるUSB開発-FPGAとARMで動く USBオーディオデバイスの実例とともに-
 
データ解析のための統計モデリング入門 1~2章
データ解析のための統計モデリング入門 1~2章 データ解析のための統計モデリング入門 1~2章
データ解析のための統計モデリング入門 1~2章
 

Semelhante a Learning Go From Hello World to Web Service.pptx

Learning Go From Hello World to Web Service.pptx
Learning Go From Hello World to Web Service.pptxLearning Go From Hello World to Web Service.pptx
Learning Go From Hello World to Web Service.pptxEric Potter
 
Incompleteness for Startups
Incompleteness for StartupsIncompleteness for Startups
Incompleteness for Startupsblackbox
 
A quick introduction to go
A quick introduction to  goA quick introduction to  go
A quick introduction to goDhanush Gopinath
 
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMSDevopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMSKris Buytaert
 
Coding Dojo: String Calculator (2013)
Coding Dojo: String Calculator (2013)Coding Dojo: String Calculator (2013)
Coding Dojo: String Calculator (2013)Peter Kofler
 
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do?  (Using project 52 as examples)iTHome Gopher Day 2017: What can Golang do?  (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)Evan Lin
 
The Ring programming language version 1.7 book - Part 193 of 196
The Ring programming language version 1.7 book - Part 193 of 196The Ring programming language version 1.7 book - Part 193 of 196
The Ring programming language version 1.7 book - Part 193 of 196Mahmoud Samir Fayed
 
Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)Peter Kofler
 
On deriving the private key from a public key
On deriving the private key from a public keyOn deriving the private key from a public key
On deriving the private key from a public keyDharmalingam Ganesan
 
Kata gilded rose en Golang
Kata gilded rose en GolangKata gilded rose en Golang
Kata gilded rose en GolangJorge Ortiz
 
go language- haseeb.pptx
go language- haseeb.pptxgo language- haseeb.pptx
go language- haseeb.pptxArsalanMaqsood1
 
Nightmare on Docker street
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker streetKris Buytaert
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Peter Kofler
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io
 
JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)Peter Kofler
 
Melbourne, Australia Global Day of Code Retreat 2018 gdcr18 - Event Slides
Melbourne, Australia Global Day of Code Retreat 2018 gdcr18 - Event SlidesMelbourne, Australia Global Day of Code Retreat 2018 gdcr18 - Event Slides
Melbourne, Australia Global Day of Code Retreat 2018 gdcr18 - Event SlidesVictoria Schiffer
 

Semelhante a Learning Go From Hello World to Web Service.pptx (20)

Learning Go From Hello World to Web Service.pptx
Learning Go From Hello World to Web Service.pptxLearning Go From Hello World to Web Service.pptx
Learning Go From Hello World to Web Service.pptx
 
Incompleteness for Startups
Incompleteness for StartupsIncompleteness for Startups
Incompleteness for Startups
 
A quick introduction to go
A quick introduction to  goA quick introduction to  go
A quick introduction to go
 
New Android Languages
New Android LanguagesNew Android Languages
New Android Languages
 
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMSDevopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
Devopsdays Amsterdam 2017 Keynote, looking back at 5 years of AMS
 
Coding Dojo: String Calculator (2013)
Coding Dojo: String Calculator (2013)Coding Dojo: String Calculator (2013)
Coding Dojo: String Calculator (2013)
 
Go. why it goes v2
Go. why it goes v2Go. why it goes v2
Go. why it goes v2
 
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do?  (Using project 52 as examples)iTHome Gopher Day 2017: What can Golang do?  (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
 
The Ring programming language version 1.7 book - Part 193 of 196
The Ring programming language version 1.7 book - Part 193 of 196The Ring programming language version 1.7 book - Part 193 of 196
The Ring programming language version 1.7 book - Part 193 of 196
 
Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)Coding Dojo: Naming with Dices (2021)
Coding Dojo: Naming with Dices (2021)
 
Go_ Get iT! .pdf
Go_ Get iT! .pdfGo_ Get iT! .pdf
Go_ Get iT! .pdf
 
On deriving the private key from a public key
On deriving the private key from a public keyOn deriving the private key from a public key
On deriving the private key from a public key
 
Kata gilded rose en Golang
Kata gilded rose en GolangKata gilded rose en Golang
Kata gilded rose en Golang
 
go language- haseeb.pptx
go language- haseeb.pptxgo language- haseeb.pptx
go language- haseeb.pptx
 
Nightmare on Docker street
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker street
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
 
Go lang
Go langGo lang
Go lang
 
JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)
 
Melbourne, Australia Global Day of Code Retreat 2018 gdcr18 - Event Slides
Melbourne, Australia Global Day of Code Retreat 2018 gdcr18 - Event SlidesMelbourne, Australia Global Day of Code Retreat 2018 gdcr18 - Event Slides
Melbourne, Australia Global Day of Code Retreat 2018 gdcr18 - Event Slides
 

Mais de Eric Potter

KnowYouLimitations.pptx
KnowYouLimitations.pptxKnowYouLimitations.pptx
KnowYouLimitations.pptxEric Potter
 
KnowYouLimitations.pptx
KnowYouLimitations.pptxKnowYouLimitations.pptx
KnowYouLimitations.pptxEric Potter
 
Easy Automated UI Testing with Canopy
Easy Automated UI Testing with CanopyEasy Automated UI Testing with Canopy
Easy Automated UI Testing with CanopyEric Potter
 
Finding Your Place in the Cosmos - Azure Cosmos DB
Finding Your Place in the Cosmos - Azure Cosmos DBFinding Your Place in the Cosmos - Azure Cosmos DB
Finding Your Place in the Cosmos - Azure Cosmos DBEric Potter
 
TypeScript: Beyond The Basics
TypeScript: Beyond The BasicsTypeScript: Beyond The Basics
TypeScript: Beyond The BasicsEric Potter
 
C# pattern matching
C# pattern matchingC# pattern matching
C# pattern matchingEric Potter
 
Generalist or Specialist
Generalist or SpecialistGeneralist or Specialist
Generalist or SpecialistEric Potter
 

Mais de Eric Potter (7)

KnowYouLimitations.pptx
KnowYouLimitations.pptxKnowYouLimitations.pptx
KnowYouLimitations.pptx
 
KnowYouLimitations.pptx
KnowYouLimitations.pptxKnowYouLimitations.pptx
KnowYouLimitations.pptx
 
Easy Automated UI Testing with Canopy
Easy Automated UI Testing with CanopyEasy Automated UI Testing with Canopy
Easy Automated UI Testing with Canopy
 
Finding Your Place in the Cosmos - Azure Cosmos DB
Finding Your Place in the Cosmos - Azure Cosmos DBFinding Your Place in the Cosmos - Azure Cosmos DB
Finding Your Place in the Cosmos - Azure Cosmos DB
 
TypeScript: Beyond The Basics
TypeScript: Beyond The BasicsTypeScript: Beyond The Basics
TypeScript: Beyond The Basics
 
C# pattern matching
C# pattern matchingC# pattern matching
C# pattern matching
 
Generalist or Specialist
Generalist or SpecialistGeneralist or Specialist
Generalist or Specialist
 

Último

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Último (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

Learning Go From Hello World to Web Service.pptx

Notas do Editor

  1. I’m not a go expert Open C:\Projects\exploration\GO\MIDOTNET\TextEntryWithTimeout
  2. I’m not a go expert You are probably very good at your job. You write good code. But you may run into a situation where your services aren’t fast enough. You need a faster platform. That is where Go comes in. You can use go to build services that are fast and easy to maintain. This enables you to build software for your users that meets their needs and makes them successful.
  3. Batteries included, fast Modernize systems programming Concurrency Garbage Collection
  4. “The three of us got together and decided that we hated C++.” – Thompson First planned while waiting for C++ program to compile ('07) First stable released in '12
  5. CLI go mod init, mod tidy, go fmt, go build, go run, go test VS Code, Go Land
  6. Unit test runner, package manger, and formatter are built in
  7. CLI and VS Code
  8. No parens, no semi-colons Func, for, if (no do or while loops)
  9. Generics only added recently
  10. In go, if the function name is capitalized, it is visible outside the module The return type can be a tuple, or 2 values
  11. VS CODE
  12. If you get do
  13. Slices are a powerful abstraction on top of arrays Go has pointers but doesn’t allow pointer arithmatic
  14. The size is part of the type
  15. Slices store data in an underlying array
  16. The low end of the range is inclusive, the high end is exclusive
  17. Interfaces are the only abstract data type
  18. https://github.com/golang/go/blob/master/src/runtime/slice.go
  19. Go has structural-typing The programmer doesn’t have to declare and a struct is a reader, it just needs to implement the io.Reader and io.ByteReader inerfaces
  20. If you get do
  21. Goroutine Managed by go runtime Channel Select Allow goroutine to read from channel(s)
  22. Channel Select Allow goroutine to read from channel(s)
  23. Go’s select lets you wait on multiple channel operations.
  24. Channel Select Allow goroutine to read from channel(s)
  25. If you get do
  26. defer statements delay the execution of the function or method or an anonymous method until the nearby functions returns Defer is used to ensure that a function call is performed later in a program’s execution, usually for purposes of cleanup. defer is often used where e.g. ensure and finally would be used in other languages.
  27. If you get do