2019-10-28 22:42:35 +00:00
|
|
|
|
# Overview
|
2019-10-28 22:20:15 +00:00
|
|
|
|
|
|
|
|
|
The following is my overview for what I want this book to cover. This may be
|
|
|
|
|
incomplete and probably will become out of date quickly, but this is basically
|
|
|
|
|
my TODO list.
|
|
|
|
|
|
|
|
|
|
Each top level bullet point is its own chapter/workshop. Slides will be made
|
|
|
|
|
available as soon as they are created.
|
|
|
|
|
|
|
|
|
|
- [x] Basic getting started
|
|
|
|
|
- [x] installing go
|
|
|
|
|
- [x] hello world
|
|
|
|
|
- [x] doing math
|
|
|
|
|
- [ ] Data Types
|
|
|
|
|
- [ ] Variables
|
|
|
|
|
- [ ] Declaring variables
|
|
|
|
|
- [ ] Assigning variables
|
|
|
|
|
- [ ] Integers
|
|
|
|
|
- [ ] byte, int, int32, int64
|
|
|
|
|
- [ ] Implement Subtract/Multiply
|
|
|
|
|
- [ ] Floating-point numbers
|
|
|
|
|
- [ ] Differences between floating point numbers and integers
|
|
|
|
|
- [ ] float32, float64
|
|
|
|
|
- [ ] Strings
|
|
|
|
|
- [ ] examples of strings
|
|
|
|
|
- [ ] immutable
|
|
|
|
|
- [ ] combining strings
|
|
|
|
|
- [ ] Slices and maps
|
|
|
|
|
- [ ] generic types (this doesn’t mean Go has user-defined generic types)
|
|
|
|
|
- [ ] Slices
|
|
|
|
|
- [ ] creating
|
|
|
|
|
- [ ] appending
|
|
|
|
|
- [ ] sorting
|
|
|
|
|
- [ ] common slice types
|
|
|
|
|
- [ ] Maps
|
|
|
|
|
- [ ] make()
|
|
|
|
|
- [ ] add value
|
|
|
|
|
- [ ] delete value
|
|
|
|
|
- [ ] Control structures
|
|
|
|
|
- [ ] conditionals
|
|
|
|
|
- [ ] if
|
|
|
|
|
- [ ] switch
|
|
|
|
|
- [ ] type switch
|
|
|
|
|
- [ ] looping
|
|
|
|
|
- [ ] conditional looping
|
|
|
|
|
- [ ] C-style for loop
|
|
|
|
|
- [ ] iteration
|
|
|
|
|
- [ ] Functions
|
|
|
|
|
- [ ] Writing functions
|
|
|
|
|
- [ ] Documentation
|
|
|
|
|
- [ ] Types of functions
|
|
|
|
|
- [ ] Functions are data
|
|
|
|
|
- [ ] Functions as arguments to functions
|
|
|
|
|
- [ ] Structures
|
|
|
|
|
- [ ] defining structs
|
|
|
|
|
- [ ] documenting structs
|
|
|
|
|
- [ ] instantiating structs
|
|
|
|
|
- [ ] JSON support for structures
|
|
|
|
|
- [ ] What's the deal with pointers?
|
|
|
|
|
- [ ] pointers make values mutable across functions
|
2019-10-28 22:42:00 +00:00
|
|
|
|
- [ ] Interfaces
|
|
|
|
|
- [ ] What is an interface?
|
|
|
|
|
- [ ] Defining them
|
|
|
|
|
- [ ] Using them
|
|
|
|
|
- [ ] Errors
|
|
|
|
|
- [ ] Handling errors
|
|
|
|
|
- [ ] Package errors
|
|
|
|
|
- [ ] Making your own error types
|
2019-10-28 22:20:15 +00:00
|
|
|
|
- [ ] HTTP operations
|
|
|
|
|
- [ ] fetching data from canhazip.com
|
|
|
|
|
- [ ] validating response
|
|
|
|
|
- [ ] parsing response
|
|
|
|
|
- [ ] printing response
|
|
|
|
|
- [ ] Testing
|
|
|
|
|
- [ ] making a fake server for canhazip.com
|
|
|
|
|
- [ ] using it in testing
|
|
|
|
|
- [ ] Command line app writing
|
|
|
|
|
- [ ] Flags
|
|
|
|
|
- [ ] Help
|
|
|
|
|
- [ ] How to test a command line app
|
|
|
|
|
- [ ] Repo hygiene
|
|
|
|
|
- [ ] What should go where
|
|
|
|
|
- [ ] Applying that to previous things
|
|
|
|
|
- [ ] Go Modules
|
|
|
|
|
- [ ] how to depend on people's code
|
|
|
|
|
- [ ] best practices for releasing code
|
|
|
|
|
- [ ] semantic versioning and side effects
|
|
|
|
|
- [ ] add markdown support to the wiki
|
|
|
|
|
- [ ] Putting it all together with a webapp
|
|
|
|
|
- [ ] The Wiki example from the Go documentation
|
|
|
|
|
- [ ] https://golang.org/doc/articles/wiki/
|
|
|
|
|
- [ ] Updated a bit
|
|
|
|
|
- [ ] Tests
|
|
|
|
|
- [ ] Webapp Abstractions
|
|
|
|
|
- [ ] Adding a JSON api to it
|
|
|
|
|
- [ ] Making a client package
|
|
|
|
|
- [ ] Tests
|
|
|
|
|
- [ ] Abstracting its storage layer to a database (ql?)
|
|
|
|
|
- [ ] Migrations
|
|
|
|
|
- [ ] Tests
|
|
|
|
|
- [ ] Dockerizing
|
|
|
|
|
- [ ] Making the Dockerfile
|
|
|
|
|
- [ ] Testing with Docker
|
|
|
|
|
- [ ] Bonus: Introduction to Battlesnake
|
|
|
|
|
- [ ] brief overview of the problem space
|
|
|
|
|
- [ ] the types involved
|
|
|
|
|
- [ ] tutorial on how to make a snake
|
|
|
|
|
- [ ] somewhere to run it?
|
|
|
|
|
|