Postscript
If you have carefully read through both the Syntax and Advanced sections and typed out the code, you will realize that Go's syntax is not difficult and doesn't have many features. Experienced developers can get started in just a few days. It is completely a language oriented towards engineering, which you will gradually realize in your future coding. If you feel like you have nowhere to apply what you've learned after completing your studies and want to learn more deeply, I can provide several learning paths and example projects for your reference.
Web Development
Web development is a very common application scenario in Go language. You can try the following open-source web frameworks:
If you want to develop microservices, I recommend the following open-source frameworks:
Then you need to interact with databases. I recommend the following open-source libraries:
You can refer to the following projects for learning:
- gin vue admin
- go-zero-looklook
- gin-admin, I highly recommend referring to this project for learning monolithic web projects
- go-platform, I recommend referring to this project for learning microservice projects
IM Communication
For IM development using Go, I recommend the following open-source projects:
Network Programming
Go also has many applications in network programming. Here are some reference open-source projects:
Game Server
In the game server domain, more and more enterprises are switching to Go:
Database Development
Database development requires a certain level of technical expertise. There are also quite a few databases or engines based on Go language. Just reading their source code takes a lot of time:
- badger, high-speed KV database
- dgraph, graph database
- cayley, graph database
- etcd, distributed key-value database
- rosedb, key-value database, best choice for beginners
- nutsdb, key-value database
- prometheus, time-series database
- tidb, time-series database
- cockroach, distributed SQL database
- rqlite, distributed database based on SQLite
Command-line Tools
Go is very suitable for command-line CLI tool development. Here are some recommended command-line development frameworks or libraries:
- flag, flag standard library
- cobra, strongly recommend using cobra for CLI development. Many famous projects are based on cobra, such as Docker, K8S, etc.
- go-pretty, for beautiful output in command line
- cli, lightweight command-line framework
- kingpin, powerful and flexible command-line parsing library
Since cobra is very commonly used, there are many projects based on it for command-line development. You can find them easily. Here are just some reference projects:
The above only lists relatively common fields. You can see that Go is widely used in the server-side domain, but less in the client-side. In fact, Go also has many applications in other fields, such as webrtc, blockchain, object storage, cloud computing, etc. If you're interested, you can learn more on Github.
Finally, if you want to understand the implementation details of Go language more deeply, such as the underlying data structures of slice and map, the implementation of the goroutine scheduler, the process of GC garbage collection, etc., go to the Implementation Principles chapter to learn more.
