foreword
I majored in Java network security, but after participating in the internship (security research engineer), I found that most of the needs come from python and go, and Java also has but few. The company is more willing to accept handsome guys who can go, so I plan to take out one every day. Hour to learn the go language.
Getting to know the go language for the first time
go learning direction
(This thing is chipmunk, not groundhog)
- Blockchain R&D Engineer
- Go server side/game software engineer
- Golang distributed/cloud computing software engineering
Application areas of golang
- Blockchain application
Blockchain technology, referred to as BT (Blockchain technology), also known as distributed ledger technology, is an Internet database technology. It is characterized by decentralization, openness and transparency, allowing everyone to participate in database records.
- The back- end server uses
the Meituan back-end traffic support program to
support the back-end traffic of the main site (sorting, recommending, searching, etc.), providing functions such as load balancing, cache, fault tolerance, shunting according to conditions, and statistical operation indicators (qps, latency).
Xianxiadao
Product website: Xianxiadao official website - heart game. Scope of application: game server (communication, logic, data storage).
- Cloud Computing/Cloud Service Background Application
Shanda Cloud CDN (Content Delivery Network)
Website: Shengtian Cloud Computing
Application Scope: CDN scheduling system, distribution system, blue control system, short domain name service, CDN internal open platform, operation report system and some other small tools etc.
JD News Push Cloud Service/JD Distributed File System
Website: JD Cloud
Application Scope: All services in the background are implemented with go
Birth of the Go language
Go language core development team
Ken Thompson (Ken Thompson): 1983 Turing Award (Turing Award) and 1998 US National Technology Award (National Medal of Technology) winner. He and Dennis Ritchie are the original creators of Unix. Thompson also invented the B programming language that later gave birth to the C language, and is also the main inventor of the C language.
Rob Pike (Rob Pike): was Bell Labs (Bell Labs) Unix team, and a member of the Plan 9 operating system program. He worked with Thompson for many years and co-created the widely used UTF-8 character encoding.
Robert Griesemer: He assisted in making Java's HotSpot compiler, and Chrome's JavaScript engine V8.
Why did Google create the Go language
- Computer hardware technology is updated frequently, and performance improves rapidly. At present, the development of mainstream programming languages lags behind hardware obviously, and cannot reasonably utilize the advantages of multi-core and multi-CPU to improve software system performance.
- The complexity of the software system is getting higher and higher, and the maintenance cost is getting higher and higher, and there is currently a lack of a sufficiently concise and efficient programming language.
- Enterprises run and maintain many c/c++ projects. Although c/c++ programs run very fast, the compilation speed is really slow. At the same time, there are a series of problems of memory leaks that need to be solved.
A brief history of the development of the Go language
In 2007, Google engineers Rob Pike, Ken Thompson and Robert Griesemer began designing a completely new language, the original prototype of the Go language.
On November 10, 2009, Google released the Go language to the world as an open source code.
On August 19, 2015, Go version 1.5 was released, and the "last remnants of c code" were removed in this update.
On February 17, 2017, the Go language Go version 1.8 was released.
On August 24, 2017, the Go language Go version 1.9 was released.
On February 16, 2018, the Go language Go version 1.10 was released.