Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Golangの紹介(基礎)
Search
Yusuke AONO
October 28, 2014
Programming
0
160
Golangの紹介(基礎)
Yusuke AONO
October 28, 2014
Tweet
Share
More Decks by Yusuke AONO
See All by Yusuke AONO
Webアプリのテスト(Atrae社内勉強会)
ysk1031
1
93
Twilioの簡単な説明
ysk1031
1
64
Other Decks in Programming
See All in Programming
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
140
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
810
Tailwind CSSを本気でカスタマイズする方法
fsubal
13
5.3k
Goのエラースタックトレースの歴史と今後
sonatard
9
1.5k
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.4k
雑に思考を整理する技術と効能
konifar
60
29k
Fragment Composition of GraphQL
quramy
7
1k
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
What We Can Learn From OSS
inouehi
0
420
Let's learn code review
riofujimon
2
410
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Statistics for Hackers
jakevdp
789
220k
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Why Our Code Smells
bkeepers
PRO
331
56k
Gamification - CAS2011
davidbonilla
76
4.6k
Making Projects Easy
brettharned
108
5.5k
How STYLIGHT went responsive
nonsquared
92
4.8k
Into the Great Unknown - MozCon
thekraken
10
990
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Transcript
Goݴޠೖͷೖ 2014/10/28 Atraeࣾษڧձ
Goݴޠͱ • 2009ʹൃද͞ΕͨΦʔϓϯιʔεͷݴޠ • Google͕։ൃ • CݴޠɺUTF-8ɺmemcachedͷ։ൃऀΒ͕ઃ ܭʹࢀՃ • ݱࡏόʔδϣϯ1.3.3
ಛ • ੩తͳܕ͖ݴޠ • γϯϓϧʢͳߏจʣ • ʮྫ֎ʯ͕ແ͔ͬͨΓ͢Δ • ίϯύΠϧɺ࣮ߦ͕͍ •
҆શੑ͕ߴ͍ • ྫɿະ༻ͷมύοέʔδ͕͋ΔͱɺίϯύΠϧ௨Βͳ͍ • ฒྻॲཧָ͕ʹॻ͚Δ
࠾༻ࣄྫ • ίϚϯυϥΠϯπʔϧϛυϧΣΞʹΘΕΔ͜ͱଟ͠ɻ ·ͩRailsతͳఆ൪ແ͍ײ͕ͩ͡ɺWAF͋Δ • peco • hub • Docker
• Packer • mackerel
Πϯετʔϧ • MacͳΒɺhomebrew͏͕ΑΖ͠ • GOPATHͱ͍͏ڥมͷઃఆ͕ඞཁͰ͢ • ੨ϗʔϜσΟϨΫτϦΛઃఆͯ͠Δ • ڥߏஙΊΜͲ͍ਓɺGolangͷαΠτͰͱΓ͋͑ ͣಈ͔͢ͷ͕Φεεϝ
• http://play.golang.org/p/-URiXol0GB
ϋϩʔϫʔϧυ
ϓϩάϥϜͷ࣮ߦ • ຊདྷίϯύΠϧΛͯ͠͏ݴޠ • ͕ɺgo run ίϚϯυͰɺίϯύΠϧ͠ͳͯ͘ ࣮ߦՄೳ • ίϯύΠϧɺgo
build ίϚϯυͰ • ίϯύΠϧͰੜ͞ΕΔͷɺ࣮ߦܗࣜͷόΠ φϦϑΝΠϧ
ϑΥʔϚοτ • ͭ͡ίʔσΟϯάن͕͔ͳΓݫ͍͠ • Πϯσϯτɺϋʔυλϒ͡Όͳ͖Όμϝ • ֯εϖʔεΛೖΕΔ/ೖΕͳ͍ॴ etc. • ࣗ༝͕͍ɺ౷Ұੑ͕ੜ·ΕΔ
• go fmt ίϚϯυͰࣗಈܗՄೳ • ࣗಈͰߏจνΣοΫͯ͘͠ΕΔϓϥάΠϯ͕ɺ͍͍ͩͨͷΤ σΟλʹ͋Δʢඞਢͩͱࢥ͏ʣ
جຊจ๏ • εϥΠυʹ͢ΔͷΊΜͲ͍ ϒϩάʹॻ͍ͨ • http://yusuke-aono.hatenablog.com/entry/ 20141026/1414313149
Goroutine • Goݴޠͷେ͖ͳಛͷҰͭɺಉظʢฒߦॲ ཧʣϓϩάϥϛϯάΛ؆୯ʹ࣮ݱ͢Δػೳ • ಡΈํΰϧʔνϯ • ͍ΘΏΔεϨουతͳͷ • main()
ؔ1ͭͷΰϧʔνϯͷதͰ࣮ߦ͞Ε ͍ͯͨ
Not Goroutine
Goroutine (ʆŋωŋ´)ʎ
Channel • ෳͷΰϧʔνϯؒͰσʔλΛΓͱΓ͢Δ ʹʁ • ͦͷࡍʹ͏ͷ͕ɺνϟωϧ • ΈࠐΈͷ make() ؔΛར༻
Channelͷར༻
νϟωϧɺͲ͏͑Δ͔ • ྫ͑ɺಉ࣌ʹෳͷαʔόʔʹϦΫΤε τΛग़ͯ͠େྔͷ໋ྩͱେྔͷσʔλΛฒྻ ॲཧ͢ΔϓϩάϥϜɺͱ͔ʁ • GoͷϛυϧΣΞ͕ଟ͍ͷɺGoroutine ͱChannelͷଘࡏ͕͋Δ͔ΒͩͱࢥΘΕΔ
GoͷWAF • Revel • Martini • Goji • net/http and
so on. SinatraͬΆ͍ͷ͔ΒRailsΈ͍ͨͳશ෦ೖΓ·Ͱ৭ʑ͋Δɻ ৮ͬͯࢼ࣌ؒ͢ͳ͔ͬͨɺ͢Μ·ͤΜɻɻ
·ͱΊ • γϯϓϧʹ࡞ΒΕ͍ͯͯɺ݁ߏ͍֮͑͢ • ίϯύΠϧ࣌ʹνΣοΫͯ͘͠ΕΔͷྑ͍ʢϙΧϛεݮΔʣ • ฒྻॲཧ͕؆୯ʹॻ͚ͯͼͼΔ • ͱ͍͑ɺ੩తܕ͚ίʔσΟϯάͷεϐʔυײ͕ଟগམ ͪΔͩΖ͏ʢಛʹRubyʹͱͬͯʣ
• ܭࢉʢߦྻͷੵͱ͔ʣॲཧೳྗͱ͔ɺWAFͱͯ͠ͷ͍ ͢͞ͱ͔͏গ͠ௐͯΈ·͢