This is a creation in Article, where the information may have evolved or changed.
Contact Go is the 2012, the real start of the system of learning and development system is 2014 years, go language learning is one of their 2014 years of important work, the summary of Go language learning, is also considered one of the end of the year
1. Reasons and motivations for learning go:
1> has previously done 2 years of Unix C development experience, for the C language has a special feeling, go is particularly suitable for my appetite, after the use of love;
The 2>go language team is too dazzling and powerful: the Thompson Turing Prize winner, the co-inventor of Unix and C, the main developer of the Pike PLAN9 operating system, the UTF-8 inventor; Robert Griesemer the hotspot in Java, JS V8 engine developer;
3> domestic preacher's highly recommended: Xu Xiwei brother, brother Xie Mengjun and other strong recommendations and related books came out;
2. Learning Materials:
Books are: Lao Xu's "Go Language Programming", Lao Xie's "Go Web Programming", rain marks of "Go language learning Notes", golang.org above the "effective go", "The Go Programming Language specification", The Go standard library and many open source libraries on GitHub
Of course, no-smell video tutorial is also very suitable for beginners, followed him to the code to knock over the multiplier
3.go Learning Experience:
Go language basic knowledge is very simple, simple to a few days can learn, and can start to develop, but to be proficient, not a few years of skill is difficult to achieve, this is learning any programming language must experience, you can do is: Keep writing code, keep thinking, keep summing up, constantly read others code, Keep to the master to consult;
4.go learning difficulties, the difficulties encountered in my study, as well as relevant reference materials indexed, this is a very valuable thing:
GO Data Structures
Arrays, slices (and strings): The Mechanics of ' append '
Several scenarios for using defer
Go interface interface of the underlying implementation mechanism (can go deep into the source) (Deep to understand: interface assignment, interface transformation, interface assertion and go dynamic); For the Go Language interface is the soul;
See also: Old Xu "Go Language Programming" Chapter 9th section 9.5 interface mechanism
Join: A big foreign guy wrote: How to use interfaces in Go
See also: Interfaces_and_types
See ALSO: Learning Go-interfaces & Reflections
Go type System: This is very important for mastering a language: the static type (language level is the statically typed language), the dynamic type (for the interface), the underly type (the underlying type is for casts and assigns);
See also: the Go programming Language Specification-type
See ALSO: Learning Go-types
See also foreign Daniel: Function Types in Go (Golang)
Go closures: A discussion on the closure of function programming (Closure) Go Language (Golang)-closures
Go functional Programming: GO-functional programming practice
The so-called reference refers to the use of pointers, but there is the role of pointers, reference: A as a parameter transfer function inside, the function of internal modification of a but change the value of external a
Pointer: *a is passed as a parameter to the inside of the function, and the function internally modifies the *a value to be changed;
See also: pass-through and citation of the Go language this article analyzes the very rare good articles in place
Nil value and nil for error type in Go
There's an article on the error nil related
Here is a Interface nil article Golang: detailed Interface and nil Chen brother about go of a few articles are very grounded gas, suggestions have looked
See also: Lao Xu "Go Language Programming"
See also: Official version laws-of-reflection
Translated by: The-laws-of-reflection I think this is the best article in translation, which incorporates the author's thoughts and perceptions.
And my abbreviated version, more of a guideline for the API: the Laws of reflection
Reflection Small Test Skill: Refer to this article in Golang with the name of the function Mikespook translation of other articles is also very good
Martini Framework uses the Classic DI library: inject textbook office to implement injection
Inject library code is very obscure, you can refer to Brother Chen's side of the classic article Golang:martini inject source analysis This article is easy to read, written very good
Reflection is closely related to interface, go type System, REFELCT. TYPEOF returns the dynamic type of the interface, the Func (v Value) type () type, which returns the type of Value, reflect. Type is the underlying type expression
See "Go Concurrency Programming"
See system knowledge behind the Goroutine
See Rain Scars Study Notes
5. Framework Learning:
Thanks to the Beego framework, Beego is very easy to get started, modular design, and modules are very complete; Xie adults more enthusiastic, QQ Group is more active, my two small systems are based on beego development; This reading of the small black for the people who want to see the framework of the source is a gospel;
Martini just saw inject that part, 2015 hope to have time to look at Martini and Revel.
6. Look forward to
Looking forward to a cow who can give a special introduction to go how to design a large system of books, go language design patterns and object-oriented design patterns are very different; Lao Xu has a ppt inside the introduction of the connection and the combination of the language, to the size of seven cattle system, should be able to abstract a set of patterns out, someone do? Concurrent related design patterns, there are many articles on the Internet, but it is not very systematic; I hope 2015 of us can stand up and do this, and we stand on the shoulders of giants and move on.
In fact, not to learn to study: I am a large part of the time or the side of the development, learning standard library, side to learn, encountered a larger common module to GitHub to find out whether it has been realized, if you think you rewrite better than the original author, you can pull request. Of course, in the development of the blind spot of their knowledge, it is necessary to have a unit of the spirit of research, to understand it, technology will naturally be improved, personal thin see, cautious reference.