This is a creation in Article, where the information may have evolved or changed.
The go language was officially announced in November 2009 as an open source project, and has become more and more influential this year, and has risen by 34 in the TIOBE programming language rankings, ranking among the top 20. Many developers are gradually looking at this language, this article has collated some of the better learning and application of the Go language development project, I hope for the developers who have not contacted the language to provide a way to learn and understand the language.
About the Go language:
Go is a compiled, hair-style, and garbage-collected programming language developed by Google.
First, introductory article
0. Open Source Book "Go Web Programming"
An open source book "Go Web Programming", "Build Web Application with Golang". The author of the book mainly shares some of the things that go writes about Web applications:
- For students who have turned from Php/python/ruby, learn how go writes Web application development
- For those of you who have turned from C/s + +, learn how the Web works.
1. "The Go" Chinese version
Because there is no better go language books at home, and foreign excellent books because of the English sake to some extent also for many go language enthusiasts have brought some learning problems, although the "way to go" this name for the current go language version of a small portion of content is relatively outdated, But for the moment a rare good book, part of the content has been approved by the author according to the current Go language version of the changes. and open source for free to share to the needs of Go language enthusiasts.
2. Video Audio Tutorial "Go Programming Basics"
"Go Programming Basics" is a set of video-audio tutorials for Google's go language, primarily for novice-level learners. Each class will create a document (e.g., LECTURE1.MD) as a class note. The class notes contain the knowledge points covered by the class and the point at which the knowledge points begin to be explained, so that learners can quickly locate the part they want to understand and save time that is unnecessary to waste. In addition, if the learner is confused by a slip of the tongue or other reasons in the tutorial, it will also be added to the lecture notes.
3.Go Package document Chinese Translation
This is the standard package for the Go language and part of the third-party package document Chinese translation.
Project Source: Http://git.oschina.net/liudiwu/pkgdoc
Online Browse: http://mygodoc.oschina.mopaas.com/
Ii. Development of the article
0.Go Language development tool Liteide
Liteide is an open-source, cross-platform, lightweight go Language integrated development environment (IDE).
1.Eclipse Go Plugin Goclipse
Goclipse is an Eclipse plugin that adds the Go language programming feature to the Eclipse platform. The purpose of Goclipse is to create an environment for beginners to develop the Go language. The platform has been slow to develop, but has continued.
2. Web-based Team Go language IDE Wide
There are some flaws or regrets in the more popular Go Ides:
- Text Editor classes (Vim/emacs/sublime/atom, etc.): For beginners The threshold is too high to build complex
- Plug-in class (Goclipse, etc.): Need the original IDE support, not professional
- Liteide: The interface is not modern
- No team development experience
The Go IDE is very rare, the IDE developed with go itself is not, and the Go IDE is a good attempt.
Online Experience: https://wide.b3log.org
3.Go full stack web frame Revel
Revel is the framework of the Go language, and the idea is entirely from the Java Play framework.
4.Go Program Debugging Tool Godebug
Godebug is a different Go program debugging tool, the traditional compiler language debugger uses the underlying system calls and reads the binaries for debugging various symbols. It's cumbersome and difficult to transplant. Godebug uses different methods, direct the source code as the target program, insert the debug code in each line, and then compile and run. The result is a fully functional debugger that can be ported to different platforms. In fact, thanks to the Gopherjs, you can also debug on a browser.
III. Application of the article
0. Easy to build self-service Git Services Gogs
Gogs's goal is to create the simplest, fastest, and easiest way to build self-service Git services. Using go language development enables Gogs to be distributed through standalone binaries and supports all platforms supported by the go language, including Linux, Mac OS X, Windows, and ARM platforms.
1.Go crawler Software Pholcus
Pholcus (Ghost spider) is a pure Go language support distributed high-concurrency, heavy-weight crawler software, located in the Internet data collection, for a certain go or JS programming basis for people with a need to focus on the rules to customize the powerful crawler tools.
2. Game Server Framework Leaf/go
The Leaf is an open-source game server framework developed using the Go language, focusing on operational efficiency and the pursuit of ultimate development efficiency. The Leaf is suitable for almost all types of games. It has the following characteristics: good experience, good stability, multi-core support, good module support.
3.Go Asynchronous Task Queue Go Machinery
Machinery is an asynchronous task queue and job queue for the Go language, based on distributed message delivery. A Python-like celery framework. Tasks (or jobs) in machinery can be executed concurrently by multiple workers on many servers, or multiple worker processes can be run on a single server using the Go process.
4.Go Application Framework Beego
Beego is a Go Development application framework, the idea comes from the tornado, routing design from Sinatra, support the following features: MVC, REST, intelligent routing, log debugging, configuration management, template automatic rendering, layout design, middleware insertion logic, convenient json/ XML service.
5.HTTP Flow Copy Tool Gor Go
Gor is a simple HTTP traffic replication tool written with Go, primarily to return traffic from the production server to the development environment. Use Gor to test the code in an actual user session.
Web Framework for 6.Go language Martini
Martini is a very new WEB framework for Go language, developed using Go's net/http interface, similar to Sinatra or Flask frameworks, you can use your own DB layer, session management and templates.
7.Go WebSocket Frame Melody
Melody is a Go language miniature WebSocket framework, based on Github.com/gorilla/websocket development.
8.Go developing MySQL Proxy project Kingshard
Kingshard is a high-performance MySQL proxy project developed by Go, Kingshard is dedicated to simplifying MySQL sub-Library table operations in satisfying basic read/write separation functions, enabling DBAs to easily and smoothly implement MySQL database expansion through Kingshard. The performance of Kingshard is more than 80% of the performance of direct-connect MySQL.
9.Go development of IM and push service Goim
Goim is a cluster-enabled IM and real-time push service (supports websocket,http and TCP protocols).
Go Test Tool Goconvey
Goconvey is a pretty good go testing tool that supports go test. Can be used directly in the terminal window and the browser.
But while Go is developing quickly, developers should choose whether they want to learn more about the language according to their actual situation. If you have other good open source projects in learning the Go language, please leave a comment in the comments section for learning and communication.