First, the origin, development and popularization of Go language
1. Learn Go
Golang is introduced and the installation environment | | Golang tutorial series theme Go on] (juejin. Cn/post / 694249…).
1.1 Origin of Go
1.2 Main features and development environment of Go language
1.3 Go language often make a summary of mistakes
1.4 Golang books are recommended
- 1.4.1 Go Starting Guide is suitable for beginners, the content is relatively basic
- The Bible is as its name suggests
- Find the right circle, learn faster
- This site is great for picking up a language quickly
- 1.4.5 Go language advanced programming content suitable for advanced
- The 1.4.6 GO language was originally produced by Oushen. Although the progress is only 9.9%/100%, it is excellent and worth watching
- 1.4.7 Golang Design Mode Golang design mode, “Grinding Design Mode” golang implementation
- The author is the author of the famous Go open source project Beego, and his best practices are very worth reading
- Write Go code online without setting up a local Go environment
1.5 Go language open source project
- Xgen – Write a base library of XSD tools to define XML schemas as multi-language types or declarations
- GQLEngine- High performance Go language GraphQL server-side landing framework
- Orange is a Web development framework based on Golang language
- Go-admin – A framework for quickly building visual data management background based on Golang
- Go-snowflake The Snowflake algorithm implemented by the Go-Snowflake Go language implements a unique ID for a distributed system. After a 1-second stand-alone test, the system can generate 20 ids
- KubeVela is an easy-to-use and highly extensible application management platform and core engine
- TiDB is a database you’ll want to choose after you’ve seen mysql’s performance bottlenecks
- EasyMIDI EasyMIDI is a simple and reliable library for handling standard Midi files (SMF).
1.6 Installing the Go language Environment
Download address: www.golangtc.com/download
GOPATH
Two, Go work environment setting
1. The editor
- Jetbrains GoLand is highly recommended - Jetbrains IDEA + Go plugin - VS Code - Atom - liteide - Sublime TextCopy the code
2. Dependency management
- Glide - Installation: <https://glide.sh/> - Initialization - Dependent download - modCopy the code
3. Release of Go source code
Package, function, variable, constant, data type
1. The package
Go language JSON package using skills
1.1 package
Goodbye, GOPATH! The new version of Golang package management tutorial
Go package Management Tool (1)
The Go language standard library text/template package is simple
Go language closure details
Go Package management tool Govendor Usage Guide
1.2 Third-party Packages
1.3 Import Statement
1.3.1 Group Import Statements
1.3.2 Multiple Import Statements
1.4 export name
Go syntax package, import package, export name
2. Function correlation
Go language from Beginner to Master: Functions
2.1 Function Operations
Parse function calls in Go
The Go function calls Redux
Init function in Go
Is there reference passing in Golang function passing parameters?
Golang functional programming brief
From the perspective of memory allocation strategy (heap, stack), is passing Pointers really more efficient than passing values?
An article explains functions in the Go language
2.2 Function returns multiple values
Golang function compiled by looking at how the return value | second essay 🏆 technology projects
2.3 function value
2.3.1 Closure of a function
Go language closure details
What closure does it take just one example to clarify
GO- Three aspects of understanding closures
Closure implementation in the Go language
3. The variable
3.1 Introduction to Variables
Golang environment variable setup details
Go initializes the variable’s move
Golang concurrency shared memory variable
Golang starts from scratch: naming conventions, variables, and constants
【Go learning 】Go variables
CGO_ENABLED Effect of environment variables on Go static compilation mechanism
Golang interview question: How do reflect get field tag? Why can’t json packages export tags for private variables?
3.2 Initialization of variables
3.3 Short variable declarations
A short variable declaration for GO
3.4 the zero value
Variable declarations without an explicit initial value are given their zero value
What is the programming book saying that “Go programmers should make sense of zero values of aggregate types”
Golang zero value, null value and null structure
- Zero value is:
- The value type is 0
- The Boolean type is false
- String “” (empty string)
- The relationship between zero and null values
- The difference between null values of zero
4. Constant
4.1 constant
Golang from scratch (II) : Naming conventions, variables, and constants
Golang learning — Constants const and IOta
Golang Advanced 1: Type comparison, constant, nil
4.2 Numerical Constants
5. Basic types
5.1 a bool
5.2 the string
How does Go intercept a string? Intercepts English and Chinese strings
Go series string, bytes, and rune
Explain the use of ReplaceAllString in the Go Regexp package
The int integer of Go converts to the string string
Golang string that you didn’t know about
Go library introduction 1: Strings
Golang FMT package String(),Error(),Format(),GoString() interface implementation
5.3 int INT8 INT16 INT32 INT64UINT UINT8 UINT16 uint32 Uint64 UintpTR
Golang int, int64 and string interchange
So this is the Go Interface
Golang Interface In-depth understanding of the interface
From GOIM customization, talk about GO interface decoupling and gRPC
Golang: What’s the difference between uintptr and unsafe.Pointer?
Implementation principle of MulUintptr in Golang
5.4 byte // Uint8 alias
Go series string, bytes, and rune
Go of the []byte array and string conversion
Strings, bytes and Runes — learn the Go language
Strings, bytes, runes, and characters in Go
5.5 Rune Unicode code points
Go series string, bytes, and rune
Runes and string interconversion in Golang
Strings, bytes and Runes — learn the Go language
[] Byte, string and []rune in Golang
5.6 float32 float64
5.7 complex64 complex128
5.8 Type Conversion
Go base type conversion
A summary of the four type conversions in Golang
A time.duration related type conversion problem in Golang
5.9 Type Toppling
4. Process control statements
Process control statements: for, if, else, switch, defer
1. Loop statements
1.1 the for
1.1.1 the for loop
Is yesterday’s colleague from the append element in the for loop still around today?
The most common mistake to make with Goroutine in Golang’s highly concurrent programming For loops
Go language performance optimization – For Range performance research
[Golang] This several for-range pit, you must know ah, iron juice
1.1.2 Initialization Statements
1.1.3 Conditional expressions
About the scope of a variable in an if-else conditional expression
1.1.4 Cyclic conditions
1.1.5 Post-statement
2. Judgment statement
2.1 the IF
2.1.1 Short statement for if
2.1.2 the if and the else
2.2 the switch
Go language flow control: switch-case
Part 10: Golang switch statements
The evaluation order of the switch
3. Post-invoke -defer
3.1 the defer
After the function containing the defer statement completes, the function after defer will be executed – deferred
Execute multiple defer statements in a function in reverse order of declaration.
3.1.1 principle
Delayed function calls are pushed onto a stack. When the outer function returns, the delayed function is called in last-in, first-out order.
The Go delay function defer is explained in detail
Go takes you through the defer delay function
Fifth, the underlying data structure
Pointer to 1.
Go has Pointers. Pointers hold the memory address of the value.
Golang research: use Golang pointer type
Learn the Go pointer thoroughly — learn the Go language
Golang A pit for range pointer data
Golang pointer: Usage, features, and operations
Go reflection implementation type and pointer copy
2. The structure of the body
A struct is a group of fields.
Golang | Go language introductory tutorial – structure initialization and inheritance
15. Understand object-oriented programming in Go: Structures and inheritance
All-encompassing structures — learn Go
Golang custom structure to Map
2.1 Structure fields
Structure fields are referenced by periods
Golang custom structure to Map
2.2 Structure pointer
Structure fields can be accessed through structure Pointers
2.3 Structure declaration
The structure declaration allocates a new structure by listing the values of the fields directly.
An array of 3.
The type [n]T represents an array with n values of type T.
How does Go deduplicate array slices
“Learn Go language” lesson 4 — low-key array
Go slice and C array conversion
Go the []byte array and string interconversion juejin.cn/post/684490…
4. Slice
The size of each array is fixed. Slicing provides a dynamically sized, flexible view of array elements. In practice, slicing is more common than arrays.
In-depth analysis of three special states of “slices” in Go
Interviewer: Is slicing passed as a function argument by value or by reference?
Precautions for use of Go slices
How do I use slice capacity and length in Go
4.1 Section Definition
A slice is like a referenced array. A slice does not store data directly; it simply describes a segment of the underlying array.
4.2 Slice Grammar
Slicing grammar is similar to array grammar without length.
4.3 Default behavior of slicing
4.4 Section length and capacity
Nil section 4.5
You don’t even know the difference between a nil slice and an empty slice? The BAT interviewer will have to send you home to wait for the announcement.
4.6 Creating a Slice using make
4.7 Slices of slices
Slices can contain any type and even other slices.
4.8 Append elements to slices
4.9 the range
The range form of the for loop traverses slices or maps.
5. Map
Gin automatically maps parameters and automatically verifies them
PHP to Go series: map mapping
5.1 Grammar of Mapping
5.2 Modifying a Mapping
5. Methods and interfaces
Method 1.
- Pointer receiver
- Method and pointer redirection
- Select the value or pointer as the receiver
2. The interface
2.1 Interface Understanding
Golang Interface In-depth understanding of the interface
Go language interface details (1)
Go language interface details (2)
2.2 Interface and Implicit form
2.3 interface value
2.3.1 Interface value of nil
Go “An interface that contains a nil pointer is not a nil interface.
2.3.2 empty interface
31. Talk about empty interfaces in Go
2.4 Interface Type Assertion
14. What are type assertions in Go?
Talk about Golang’s type assertions
2.5 Interface Type Selection
2.6 Stringer
6. Error exceptions
1. Error
Golang is a recommended method for error handling
Golang Error breakout
Part 31: Custom error in Golang
Go 1.13 errors
7. IO reading
1. Reader
Golang – ReaderAt – ReaderAt – Golang – ReaderAt – ReaderAt – ReaderAt
Image 2.
Golang image verification code reproduced
3. Blocking & non-blocking
Various positions of permanent obstruction in Golang
Golang implements a lightweight, fast, non-blocking TCP network library based on the Reactor pattern
4. Synchronous vs. asynchronous
The interviewer asked me to use channel to implement the sync lock in the sync package.
Visual Studio Live Share – Synchronize shared code with your teammates, instant editing
Kingtask: A lightweight asynchronous timed task system developed by Go
Talk about asynchrony in Python, Golang, and Nodejs with a simple Web chat
5. Select
Have an in-depth understanding of go-channel and SELECT
Eight, concurrent
1. Coroutine correlation
Golang coroutine scheduling mechanism and GOMAXPROCS performance tuning
Go concurrent scheduler resolution implementation of a coroutine pool reprint
2. Atomicity, visibility and order
Golang Concurrent programming core – Memory visibility
3. Concurrency control
Delve into Golang – Goroutine concurrency control and communication
Use context to implement concurrency control
Go concurrency goroutine and Channel, introduction to concurrency control
Ix. Language features
1. Goroutine
2. Channel
Go language tour — Golang nuclear Weapons Goroutine scheduling principle, channel details
Golang — Goroutine (coroutine) and Channel (channel)
Deep understanding of Golang’s channel
3. The model of the GMP
Deep understanding of Golang’s channel
Golang scheduler GMP model
Go Concurrency Mystery: THE GMP model
Gifs! Why is there a P in the GMP model?
Ten, framework,
1. Web framework
Go: Go common Web development frameworks | Go Theme Month
1.1 Revel
1.2 Beego
1.3 Martini
1.4 Gin Gonic
1.5 Buffalo
1.6 Goji
1.7 Tiger Tonic
1.8 Gocraft
1.9 the Mango
1.10 GORM
2. Microservices framework
2.1 the go – kit
2.2 Micro
2.3 the go – zero
2.4 gRPC
Go RPC Beginner’s Guide 1: Where are the boundaries of RPC use? How are cross-language calls implemented
Eleven, performance analysis
1. Go language performance analysis
Go Pprof performance analysis
Go program performance Analysis 101
Golang uses pprof and Go-Torch for performance analysis
Multi-dimensional thinking: how to improve the development time of the project, improve the safety, improve the speed of operation, from multiple dimensions to bring some thinking.
Xii. Problem investigation
Golang Interview
The Go language control CPU usage is sine curve | Go on topic