GO语言是互联网时代的C语言。
Go出自Google公司,这个公司在业界的知名度和实力自然不用多说。
一个普通的大学生花一个星期就能写出来可以上手的、高性能的应用。
Go拥有接近C的运行效率和接近PHP的开发效率。
这包括互联网应用、系统编程和网络编程。Go里面的标准库基本上已经是非常稳定了,特别是我这里提到的三个,网络层、系统层的库非常实用。
它包含了降低心智的并发和简易的数据同步,我觉得这是Go最大的特色。之所以写正确的并发、容错和可扩展的程序如此之难,是因为我们用了错误的工具和错误的抽象,Go可以说这一块做的相当简单。
二进制文件、Copy部署。
Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,稳定压倒一切。
那么为什么Go相比于其他程序会更稳定呢?这是因为Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如go tool、go fmt、go test。
Go降低运维难度的同时还减少了机器的负载。
Go二进制可执行文件,这种真编译(比如c/go/c++/delphi…)的程序,反编译得到的是汇编,不可能得到源代码。
Go提供了每个平台打好包的解压安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go)。
这种方法不用编译,最快最高效。
在官网找最新版的下载地址 https://golang.org/dl/
$ cd /tmp && rm -rf /usr/local/go
$ wget https://dl.google.com/go/go1.12.4.darwin-amd64.tar.gz
$ sudo tar -xzf go*.tar.gz -C /usr/local
$ ls -al /usr/local/go
$ sudo vi /etc/profile 或者 $ vi ~/.zshrc
粘贴以下内容:
export GOROOT=/usr/local/go
export GOPATH=/Users/shen/mygo
export GOBIN=$GOPATH/bin
# 统一PATH
PATH="/sbin:/bin"
PATH="/usr/sbin:/usr/bin:$PATH"
PATH="/usr/local/sbin:/usr/local/bin:$PATH"
PATH="$GOROOT/bin:$GOBIN:$PATH"
export PATH
$ source /etc/profile 或者 $ source ~/.zshrc
$ go version
go version go1.12.4 darwin/amd64
$ go env
$ mkdir /Users/shen/mygo 开始开发吧!
参见官方安装文档 https://golang.org/doc/install
goimports可以自动对代码中的依赖包进行管理,如果有用到,就会自动import。
$ mkdir -p $GOPATH/src/golang.org/x/tools
$ git clone https://github.com/golang/tools.git $GOPATH/src/golang.org/x/tools
$ cd $GOPATH/src/golang.org/x/tools/cmd/goimports
$ mv ./goimports $GOPATH/bin/
略
Preferences | Appearance & Behavior | Appearance
Theme: Darcula
Preferences | Editor | Color Scheme
Scheme: Monokai
Preferences | Appearance & Behavior | System Settings | Updates
关闭自动更新
Preferences | Editor | General | Editor Tabs
显示文件改动 勾选 Mark modified
Tab limit 由10改为64
Preferences | Appearance & Behavior | Appearance
显示内存 勾选 Show memory indicator
Preferences | Editor | Code Style
Hard warp at 80
Preferences | Editor | Inspections
取消拼写检查(Spelling)
Preferences | Languages & Frameworks | Markdown
Editor only
区分大小写
$ vi /Applications/GoLand.app/Contents/bin/idea.properties 增加一行
idea.case.sensitive.fs=true