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
Learning Unsung Gotchas of Go - Rashmi Nagpal
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
GopherCon Russia
April 23, 2021
Programming
310
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Learning Unsung Gotchas of Go - Rashmi Nagpal
GopherCon Russia
April 23, 2021
Transcript
46 slides
Learning Unsung Gotchas in Go Gopher Artwork by Ashley McNamara
Rashmi Nagpal Software Engineering Intern, LoopUp GopherCon Russia
Range iterator returns “two values”
None
Defer doesn't work for code blocks, only for the whole
function
None
Same Address for Different Zero-sized Variables
None
Iterating through map using “for range”
None
WaitGroup allows the goroutines to cleanly exit before exiting the
main program
None
Read and Write Operation Reordering
None
Unmarshalling JSON numbers into interface values
None
None
Recovering from Panic
None
None
Map is a reference
None
None
Data race condition
None
None
For loop iterators can be reused in go routine
None
None
Defer calls are executed in LIFO manner
None
None
Not to use More() to check if there are remaining
JSON objects in a stream
None
None
Non-ASCII punctuation characters aren't supported in struct tags
None
None
Fork-join model should be handled carefully
None
None
Deadlock!
None
None
Bibliography Resources 1. Documentation - The Go Programming Language 2.
A Go Gotcha: When Closures and Goroutines Collide 3. Darker Corners of Go – Rytis Biel 4. kstenerud/go-gotchas: Common gotchas with golang and how to work around them Visuals 1. ashleymcnamara/gophers: Gopher Artwork by Ashley McNamara
Спасибо
QnA
More Decks by GopherCon Russia
See All by GopherCon Russia
Go Profiling from Bottom Up - Felix Geisendörfer
gopherconrussia
0
270
Прозрачный gRPC-proxy один-ко-многим - Андрей Смирнов
gopherconrussia
0
200
Из Python в Go и обратно - Андрей Минкин
gopherconrussia
0
200
Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS - Иван Осадчий
gopherconrussia
0
240
Пакет embed: распаковка знаний - Илья Данилкин
gopherconrussia
0
310
За пару мгновений до main() - Олег Ковалев
gopherconrussia
0
190
Тестирование в Go c Ginkgo и Gomega - Александр Егурнов
gopherconrussia
0
180
Building an Autoscaling HTTP Proxy for Kubernetes - Aaron Schlesinger
gopherconrussia
0
180
Designing Pluggable Idiomatic Go Applications – Mark Bates
gopherconrussia
0
95
Other Decks in Programming
See All in Programming
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
370
オーケストレーション記述言語 Katari
yukikurage
0
250
ActionController meets Protocol Buffers
sorah
1
800
Spec-driven Development with AI
simas
PRO
0
2.3k
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
370
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
430
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.3k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
420
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
190
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.6k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
ラッコキーワード サービス紹介資料
rakko
5
5.8M
RailsConf 2023
tenderlove
30
1.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.3k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
560
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.7k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
WENDY [Excerpt]
tessaabrams
15
40k
Navigating Team Friction
lara
192
16k