Software archaeology for beginners: code, community and culture
-
Upload
james-turnbull -
Category
Technology
-
view
3.879 -
download
0
description
Transcript of Software archaeology for beginners: code, community and culture
![Page 1: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/1.jpg)
Software Archaeology For Beginners
Code, Community and Culture
![Page 2: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/2.jpg)
who
engineer and operations chapopen source chapfunny accent
(photo by Jennie Rainsford)
![Page 3: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/3.jpg)
other mattersauthor
http://www.jamesturnbull.nethack-n-slash developer
https://github.com/jamtur01pontification
http://www.kartar.net
![Page 6: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/6.jpg)
Who are you?
![Page 7: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/7.jpg)
Why?
![Page 8: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/8.jpg)
Three themesA bit of culture
Some things about communityQuite a lot about code,documentation and tests
![Page 9: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/9.jpg)
But I thought thistalk was justtechnical?
Or ... Why do I give a crap aboutculture and community?
![Page 10: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/10.jpg)
Culture
![Page 11: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/11.jpg)
What's culture?Why is culture important?
![Page 12: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/12.jpg)
Read & ListenPatience is a virtue
![Page 13: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/13.jpg)
Community
![Page 14: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/14.jpg)
CommunicationUse the mechanisms the project use
Ask questionsOver-share
Be polite, be upbeat
![Page 15: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/15.jpg)
CollaborationEarn trust through little steps
![Page 16: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/16.jpg)
But it's broken!
![Page 17: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/17.jpg)
You catch moreflies with honey
![Page 18: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/18.jpg)
Code,Documentation
and Tests
![Page 19: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/19.jpg)
What is SoftwareArchaeology?The fine art of software
dumpster diving
![Page 20: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/20.jpg)
DocumentationVisualization
Testing & TruthDesign & StylePerformance
![Page 21: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/21.jpg)
Read all thedocumentation
![Page 22: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/22.jpg)
Run all thedocumentation
![Page 23: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/23.jpg)
(Re-)Writedocumentation
![Page 24: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/24.jpg)
Is there a design?
![Page 25: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/25.jpg)
![Page 26: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/26.jpg)
Draw picturesand write down
the story
![Page 27: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/27.jpg)
![Page 28: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/28.jpg)
Build adevelopmentenvironment
And yes document it.
![Page 29: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/29.jpg)
Run the tests
![Page 30: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/30.jpg)
Fix the brokentests
![Page 31: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/31.jpg)
You fixed thetests?
![Page 32: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/32.jpg)
What do the testscover?
![Page 33: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/33.jpg)
# go test -coverPASScoverage: 9.7% of statementsok github.com/dotcloud/docker 0.444s
![Page 34: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/34.jpg)
![Page 35: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/35.jpg)
Wow do we suck
![Page 36: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/36.jpg)
Write new tests
![Page 37: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/37.jpg)
Tests asdocumentation
![Page 38: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/38.jpg)
Run Metrics
![Page 39: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/39.jpg)
![Page 40: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/40.jpg)
Metrics revealCode smells
Troubled subsystems
All good places to start coding
![Page 41: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/41.jpg)
Style & Linting
![Page 42: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/42.jpg)
![Page 43: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/43.jpg)
# go tool vet .commands.go:567: arg s for printf verb %d of wrong typeengine/streams_test.go:168: arg expectedOutput for printf verb %d engine/streams_test.go:228: possible formatting directive graphdriver/aufs/aufs_test.go:389: arg change.Kind forgraphdriver/aufs/aufs_test.go:429: arg change.Kind forgraphdriver/devmapper/deviceset.go:35: struct field tag ̀json:devices̀ not compatible
![Page 44: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/44.jpg)
Profiling
![Page 45: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/45.jpg)
# go tool pprof api api.profWelcome to pprof! For help, type 'help'.(pprof) top10Total: 2525 samples298 11.8% 11.8% 345 13.7% runtime.mapaccess1_fast64268 10.6% 22.4% 2124 84.1% main.FindLoops251 9.9% 32.4% 451 17.9% scanblock178 7.0% 39.4% 351 13.9% hash_insert. . .
![Page 46: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/46.jpg)
Performanceproblems areoften tied tocode smells
![Page 47: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/47.jpg)
So what have welearnt?
![Page 48: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/48.jpg)
Understand all ofculture,
community andcode
![Page 49: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/49.jpg)
Little things canhave big impacts
![Page 50: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/50.jpg)
Leave thingsbetter than youfound them.
![Page 51: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/51.jpg)
Questions?
![Page 52: Software archaeology for beginners: code, community and culture](https://reader034.fdocuments.net/reader034/viewer/2022051608/540df2128d7f72767e8b4bd9/html5/thumbnails/52.jpg)
referencesDig - Copyright University of California Santa Cruz 2009Culture - Copyright Charles EbereonwuCommunity - Copyright Storm CryptFlies and Honey - Copyright Kent WangHappy Kids - Copyright LighttruthA Picture is worth a thousand words - Copyright Jessica Hemrick