$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Learning by Contributing
Search
Nathan Youngman
April 26, 2014
Technology
1
80
Learning by Contributing
Lightning talk at GopherCon 2014 on what I've learned by contributing to open source Go projects.
Nathan Youngman
April 26, 2014
Tweet
Share
More Decks by Nathan Youngman
See All by Nathan Youngman
The Healthy Programmer
nathany
2
110
Go and Node.js: a comparison
nathany
1
230
Diet Hacks
nathany
2
390
Go 1.6 and HTTP/2
nathany
3
140
Upgrading Rails Redux
nathany
1
96
GopherCon recap
nathany
0
180
Go Functions
nathany
0
100
Go Arrays & Slices
nathany
0
150
Go Types
nathany
2
130
Other Decks in Technology
See All in Technology
Power of Kiro : あなたの㌔はパワステ搭載ですか?
r3_yamauchi
PRO
0
190
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
140
エンジニアリングをやめたくないので問い続ける
estie
2
1.2k
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
220
打 造 A I 驅 動 的 G i t H u b ⾃ 動 化 ⼯ 作 流 程
appleboy
0
360
RAG/Agent開発のアップデートまとめ
taka0709
0
190
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
120
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
1
590
文字列の並び順 / Unicode Collation
tmtms
3
620
MLflowダイエット大作戦
lycorptech_jp
PRO
1
140
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
430
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
17
6.7k
Featured
See All Featured
So, you think you're a good person
axbom
PRO
0
1.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Code Review Best Practice
trishagee
74
19k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
26
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Writing Fast Ruby
sferik
630
62k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
60
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
250
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
20
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
120
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
670
Transcript
! Learning by Contributing @nathany
Open Source
None
howeyc/fsnotify • Used by: • revel • jkl • gin
• countless others…
Learning Adapter OS inotify Linux, Android kqueue BSD, OS X,
iOS ReadDirectoryChangesW Windows File Event Notifications (FEN) Solaris 11 FSEvents OS X fanotify Linux
Oh. Windows. Testing on multiple platforms. https://github.com/gophertown/vagrant-gopher
Backwards compatibility
Code style pathsToRemove := make([]string, 0) ! “Just write: !
var pathsToRemove []string” - iant! https://code.google.com/p/go-wiki/wiki/CodeReviewComments
Effective use of the standard library ! atomic.AddInt32(&c.val, 1) !
“use ioutil.TempDir to create a unique root for this test run” - dfc!
Naming things func validateFlags() error “notice that the purpose of
this is to set up state; the validation is secondary. it's misnamed.” - r
Error messages "phrasing: say what's wrong, not how to fix
it.” ! return fmt.Errorf("unexpected argument provided”) “this isn't quite right. "extra argument"? "too many arguments"?” - r
– rsc “The goal here should be to expose the
minimal necessary functionality that lets people build useful things…” API design
– rsc “The problem with callbacks is that you now
have to worry about user code blocking (or panicking) a library goroutine. ! A channel is a much better separation.” I hadn’t considered…
– rsc “There is no testing benefit here to the
interface over a simple struct with only public fields.” Keep it simple
–Chad Fowler “Pick an open source project that you admire
and whose developers appear to be at that "next level" you’re looking to reach.”
exercism.io
@nathany http://edmontongo.org/