Skip to content

Latest commit

 

History

History
123 lines (120 loc) · 3.09 KB

playbook.md

File metadata and controls

123 lines (120 loc) · 3.09 KB

Setup

  • terminator 2 tabs (one vim)
  • start terminal logger
  • open slides
  • silence phone

Slides

  • Me
    • Professional work with Go for about 8 years, 20 years in general
    • Worked
    • Big companies: Intel, Qualcomm, Applied Materials
    • Small: EWT/FATTOC, SauceLabs, ...
    • Things I wrote in Go
    • HTTP Proxy
    • In memory database
    • go2xunit
    • selenium
    • Serverless (nuclio), close to 500K RPS
    • Data streaming
    • Cyber Security
    • Contributed to many open source projects
    • Including Go
    • Still code every day
    • Mostly Go, Python, bash, Clojure, C, ...
    • Still learn every day
  • logistics
    • retired army major
    • netflix prize (2007-2009), didn't get to production
  • Cone of learning
    • Ask questions
    • ןלוכמ רתוי ידימלתמו יתוברמ רתוי ירבחמו יתוברמ יתדמל הברה

Workshop

  • create project on github
  • git clone project
  • cd project, git add ...
  • Go over the code
    • Tokenize (document)
    • Must in init/var
  • testing
    • go build ignores files ending with _test.go
    • solutions/nlp/nlp_test.go
    • fail vs fatal
    • table
    • [] vs nil
    • exercise: read cases from JSON
  • go mod init github.com/353solutions/nlp
    • cat quotes/grove.txt (or http://j.mp/2W1cp7U)
    • go.mod
    • go mod tidy
    • testify (assert vs require)
    • go get github.com/stretchr/testify
    • modules.md, our software dependency problem
    • vendor
    • quick
    • cat quotes/hickey.txt
    • example_test.go
    • show on godoc.org
    • CI & skip
  • Performance tuning
    • cat quotes/rules-of-optimization.txt
    • BenchmarkToeknizer
    • go test -bench . -run '^$' .
    • GOMAXPROCS
    • go test -bench . -run '^$' . -cpuprofile=cpu.pprof
    • nlp.test
    • go tool pprof -http :8080 cpu.pprof
    • change to make([]string, 0, 20)
    • cat quotes/rdh.txt
    • optimize.md
  • debugging
    • cat quotes/debug.txt
    • Feynman algorithm? (quotes/feynman.txt)
    • IDE
    • dlv test .
    • mention gdb
    • mention logs
  • add stemmer
    • Conway's law
  • add stop words
    • go generate
    • build tags
    • go generate
  • solutions/nlp/cmd/nlpd/nlpd.go
    • grpc?
    • gorilla
    • _healthz
    • handler
    • flag just for --help
    • joke on nukedb
    • github.com/kelseyhightower/envconfig
  • logging & metrics
  • Dockerfile
    • Version
    • CGO_ENABLED=0
    • runtime.Version, runtime.GOOS ...
  • https://memegenerator.net/img/instances/22605665/worked-fine-in-dev-ops-problem-now.jpg
  • Publishing/workflow & code reviews
    • GitHub account
    • feature branches
    • PR
    • Fixes #...
    • tag version (semver)
    • go get in testing
    • license (IANAL)
    • solutions/nlp/doc.go
    • README.md
    • GOOS=windows go build
  • Continuous integration
  • Deployment strategies
    • green/blue
    • canary
    • HAProxy?