Description
Course Objectives
- Current Go Standard Library
- Relevant networking libraries
- Version control with git
- Git integration with popular SCM (GitHub)
- Executing system commands
- Parsing and building files
- Consuming RESTful APIs with Go
- Creating a RESTful API with Go
- Parsing JSON
- Parsing XML files
- Building a simple web app with Go
- Containerizing Go Apps with Docker
- Interaction with databases
- Project structure best practice techniques
Outline: Golang Essentials (GE)
Introduction to Go
- Installing Go
- Preparing to write Go (tools you can use to write code)
- Executing a Go file
- Best practice techniques
- Go Statements and Control Flow
- Overview of the Standard Library
Version Controlling Code with Git
- Overview of Git
- Git commands
- Set up a GitHub account
- GitHub essentials
- README course requirements
- How to Set up a repo
- ssue a Pull request
- How to use “Issues” for peer review
Basics of Golang Programming
- Basic Types
- Composite Types
- Functions
- Methods
- Interfaces
- Reading in console input
Data Types in Go
- Basic Type
- Numbers
- Strings
- Booleans
- Aggregate Type
- Arrays
- Structs
- Reference Type
- Pointers
- SiteMaps
- Functions
- Channels
- Interface Type
- Type conversions
Conditionals, If, Else, and Else If
- Trigger blocks of code with conditionals
- switch… case statements
- Conditional operators
- Arithmetic Operators
- Assignment Operators
- Comparison Operators
- Logical Operators
- Bitwise Operators
- If statement initialization
- Nested if statements
Goroutines
- Concurrency
- Creating a goroutine
- Fetching values
- Playing and pausing
- Channels
- Concurrency problems
Looping with “for”
- The for Loop
- For iteration examples
- Looping across datasets from files
Getting Data In and Out of Go
- Opening Files
- Working with Files
- Read data from files
- Controlling Output Location
- Intro to working with APIs
- What is a “REST”ful API?
- APIs and JSON
- Marshalling and Unmarshalling
- YAML
Creating Go Functions
- Function Basics
- Defining Functions
- Functions with parameters
- Returning values
- Returning multiple values
Golang Packages
- Packages
- Go Struct and Field Validation examples
- Dynamic JSON
- Statistics package
- Go Slice Map Filter
- HTML Parser
- Simple image processing
- Chart package
- Dynamic XML parser
- Data time toolkit
Go Scope
- Local Variables
- Global Variables
- Variable preference
- Naming conventions
Regular Expression
- CommonRegex Golang Package
- Writing regular expression
- Searching for data in files
- Using Regular Expression to search data sets
- Searching for data in Wireshark Traces (Go and *.pcaps)