Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
Search
Sho Nagata
May 27, 2019
1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
2019/5/27 Goあんこ LT大会 6kg での発表資料です。
Sho Nagata
May 27, 2019
More Decks by Sho Nagata
See All by Sho Nagata
速く作れるかではなく、速く学べるか ― 学習ループを回すパイロットの途中報告
nagata03
0
700
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
1k
チームスローガンとその設計意図
nagata03
0
510
0→1フェーズのプロダクト開発のリアル
nagata03
0
340
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.9k
SmartHRにおけるスクラムマスターへの道
nagata03
0
450
競技プログラミングにチャレンジ!
nagata03
0
480
1年間Rubyを使って印象的だったあれこれ
nagata03
0
510
Railsのコードを読んでみる vol.1
nagata03
0
490
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Designing Powerful Visuals for Engaging Learning
tmiket
1
590
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
920
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
270
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Navigating Weather and Climate Data
rabernat
0
550
The Cost Of JavaScript in 2023
addyosmani
55
10k
Designing for Timeless Needs
cassininazir
1
520
Transcript
ϓϩάϥϛϯάྺͷ Rubyist͕ GoΛֶͼ࢝Ίͯށͬͨ @nagata03
ࣗݾհ • Sho Nagata • όοΫΤϯυΤϯδχΞˏΧΧΫίϜ • ৯ϩάͷϚΠΫϩαʔϏεԽΛਪਐத • Ruby
/ Railsʢྺ9ϲ݄ʣ • GoΛֶͼ࢝Ίͯ3ϲ݄ • ͖ͳݴޠPython ˏs_naga03 Sho Nagata nagata03
ʹͳΓ͍ͨ ͕͖ͳ ist
GoΛֶͼ࢝Ίͯށͬͨ͜ͱ 1. ྫ֎ػߏ͕ͳ͍ 2. ΠϯλϑΣʔεͬͯͳΜͧʁ
1. ྫ֎ػߏ͕ͳ͍ • Goʹྫ֎ػߏ͕ͳ͍ʢRubyͰݴ͏ begin~rescue~end ͕ͳ͍ʣ • ؔෳͷΓΛฦ͢Α͏ఆٛ • Τϥʔ༰ΛׂΓͯΔerrorܕͷมΛฦ͢Α͏ʹ͢Δ
• ؔͷΓͰΤϥʔ͕ൃੜ͔ͨ͠Ͳ͏͔Λࣔ͢
1. ྫ֎ػߏ͕ͳ͍ • ؔΛݺͼग़͢͝ͱʹifจͰΤϥʔఆ • ͘Ͳ͍ʁ • idiomԽͯͯ͠γϯϓϧ • ελοΫτϨʔεऔΕͳ͍
• pkg/errorsύοέʔδΛ͑ελοΫτϨʔεऔΕΔʂ͚Ͳ… • osύοέʔδͷOpenؔ • 2ͭͷΓerrorܕ
1. ྫ֎ػߏ͕ͳ͍ Ҿ༻ɿeurekaϒϩάʮGoݴޠʹ͓͚ΔΤϥʔϋϯυϦϯάΛࠓҰৼΓฦΔʯ
2. ΠϯλϑΣʔεͬͯͳΜͧʁ • ܕͷҰछ • ܕͷॊೈੑΛ୲อ͢Δ • ʮͲͷΑ͏ͳϝιουΛ࣮͢Δ͖͔ʯΛنఆ
3. ΠϯλϑΣʔεͬͯͳΜͧʁ errorΠϯλϑΣʔεΛ࣮͢Δʹ stringܕͷมΛฦ͢Error()ϝιουΛ࣮͢Εྑ͍ MyErrorܕʹerrorΠϯλϑΣʔεΛ࣮ MyErrorܕerrorܕͱͯ͠ѻ͑Δ ߏମͷMyErrorܕΛఆٛ
3. ΠϯλϑΣʔεͬͯͳΜͧʁ fmtύοέʔδfmt.StringerΠϯλϑΣʔεΛ࣮ͨ͠ܕͰ͋Ε Stringϝιου͕ฦ͢จࣈྻΛग़ྗʹ༻ͯ͘͠ΕΔɻ https://github.com/golang/go/blob/master/src/fmt/print.go Tܕʹfmt.StringerΠϯλϑΣʔεΛ࣮
2. ΠϯλϑΣʔεͬͯͳΜͧʁ • interface{}ܕ͋ΒΏΔܕͱޓੑΛ࣋ͭʁ - ͋ΒΏΔܕinterface{}ܕͱͯ͠ѻ͑Δ - ͦͷٯΓཱͨͳ͍
2. ΠϯλϑΣʔεͬͯͳΜͧʁ • ͋Δܕ͕ͲͷΠϯλϑΣʔεΛ࣮͍ͯ͠Δ͔͙͢Θ͔ Δͷʁ - godocίϚϯυʁ - go/typesύοέʔδʁ
·ͱΊ • Goʹྫ֎ػߏ͕ͳ͍ - ྫ֎ػߏ͕ͳͯ͘͘͢͝ࠔΔʂͱ͍͏͜ͱͳͦ͞͏ - ࣮ࡍGoΛ͍ͬͯΔαʔϏεͰͲͷΑ͏ʹΤϥʔϋϯυϦϯάͯ͠ ͍Δͷ͔Γ͍ͨ • ΠϯλϑΣʔεΛ͏͜ͱͰܕΛॊೈʹѻ͑Δ
- ͍ํΛݟ͍ͯΔ͏ͪʹҿΈࠐΊͯ͘Δ - ͲͷΠϯλϑΣʔεΛ࣮͍ͯ͠Δͷ͔Ͳ͏ͬͯௐΔʁ
ࢀߟจݙ • ॻ੶ - ʮελʔςΟϯάGoݴޠʯ • eurekaϒϩά - ʮGoݴޠʹ͓͚ΔΤϥʔϋϯυϦϯάΛࠓҰৼΓฦΔʯ •
Qiita - ʮΠϯλϑΣʔεͷ࣮ύλʔϯ #golangʯ@tenntenn • GitHub - ʮgo/golang ϦϙδτϦʯ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ