Go开篇

running_sheep · · 498 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Go语言的学习完全是为了学分布式存储。
学分布式存储的原因是因为公司云改,组里开始大刀阔斧的自研分布式存储,而我除了ceph什么都不知道。于是花了几周的时间去看论文,看别人自研的分布式存储是怎么做的。从经典的GFS,过时一点的TFS,规模比较大的Azure,Amazon EBS,OceanBase,到令人叹为观止的Pangu2.0(时延500微秒,百万iops),且不说里面涉及到的新硬件,新概念,RDMA,SPDK,DPDK,我连最最基础的分布式软件的原理都一知半解,深感焦虑。上来就看别人软件架构并不是一个好的选择,因为有一个问题会始终困扰你:“为毛这些人都这么设计架构,为啥都在讲paxos,raft,为啥都涉及单点的讨论”。所以必须沉下心好好学分布式原理,补上这一课。感谢知乎b站,让我寻到了学习的方向---MIT6.824。说了一大堆,终于进入正题,为啥要学Go语言,很简单,因为这门课的lab老师建议用Go完成,我就是这么的听话,理由就是如此朴素。

既然是新语言,如何开始?自然就是装软件,配环境变量,安装工具包,了解编译方法,测试运行。好吧,那就开始了。

1.软件安装
https://golang.google.cn/

2.环境变量配置
打开系统面板-》高级设置-》环境变量-》新增GOPATH和GOROOT
GOPATH就是工作路径
GOROOT就是安装路径
配置好之后
go env可以用来测试

3.安装工具包
git clone https://github.com/golang/tools $GOPATH/src/golang.org/x/tools
go build golang.org/x/tools

*因为有墙的问题,所以有一些依赖包是需要手动装的,装的方法也不难:
cd进入$GOPATH/src/golang.org/x/
git clone 对应包的git地址即可
一般这些git包可以在https://github.com/golang/找到

如果我想安装godoc,还可以这么办
go get golang.org/x/tools/cmd/godoc
装好后,可以本地浏览器访问doc
godoc -http=:6060 -play

*linux安装godoc的方法

mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/tools.git
cd tools/cmd/
go install ...

4.IDE
我最爱的编译器那非sublime莫属,灵活轻便,使用sublime text需要安装GoSublime
首先手动下载插件
git clone https://github.com/DisposaBoy/GoSublime.git](https://github.com/DisposaBoy/GoSublime.git
找到插件安装位置
选中Preferences->Browse Packages… **
然后把GoSublime放到这个目录,重启IDE
选中Preferences->Package Settings->GoSublime->Settings-User
配置goroot和gopath
重启sublime,发现sublime下方出现报错,缺少margo
解决方法:
1、选中 Preferences->
Browse Packages… ** 并点击
2、创建目录 GoSublime\src\margo
3、将 GoSublime\src[margo.sh](http://margo.sh/)\extension-example\extension-example.go 复制粘贴为 GoSublime\src\margo\margo.go
重启sublime即可

5.编译运行
go build与go run命令去编译、编译并执行hello.go程序


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:running_sheep

查看原文:Go开篇

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

498 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传