Go开篇

作者: running_sheep | 来源:发表于2020-09-09 16:15 被阅读0次

    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程序

    相关文章

      网友评论

          本文标题:Go开篇

          本文链接:https://www.haomeiwen.com/subject/gfmeektx.html