在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
2012年Go语言第一个正式版本至今已经历时6年,因其优秀的性能,简洁的并发以及高效的编译等优势市场份额逐步增多,越来越多的工程实践开始选用Go语言作为基础编程语言,其生态社区也逐步发展成型,下文将从零开始构建一个Go Project。 一、Go 开发环境配置 以mac os为例,简单的配置一下Go开发环境。
Step1: 安装sdk方式1:下载 go mac pkg文件进行软件包 安装方式2:通过homebrew 管理软件包
homebrew于mac如rpm包于linux,即mac下的软件包管理程序。可以通过如下命令安装homebrew
使用homebrew管理go sdk:
Step2: 配置环境变量个人一直使用oh my zsh, 直接编辑用户目录下的.zshrc文件即可,bash用户可以直接修改~/.bashrc。
下图为个人的环境配置:
其中/Users/yzq/Code/go是我个人的go workspace
理论上现在go环境已经ready了,执行source .zshrc;go version
Step3: IDE配置永恒的信念:工欲善其事,必先利其器
目前主流的编辑器都支持了Go,比如vim,sublime,vscode,atom,如何选择完全看个人意愿了,我一直在用的是Jetbrains的 IDEA Go插件(喜欢完备特性的可以使用同系GoLand),该插件官方的说法是cover了GoLand所有特性。
直接打开Preference->Plugins安装Go插件即可
最终效果如下:
二、Go 工程实践下文将重点讲述如何以工程化标准实践为要求建设Go工程
了解Go的workspaceworkspace即工作空间,不同到编程语言乃至不同到IDE对于工作空间都有不同的设计理念(可以参考eclipse与IDEA工作空间的设计理念),以Java系IDE idea为例其工作空间叫Project,一个project会对应一套工程配置比如copyright,code format, and other config,比如多个项目可能使用不同的配置,那么这个时候就可以从工作空间纬度进行隔离。
而Go的设计很巧妙,其工作空间只有一个,下面引述官方doc的两段描述:
A workspace is a directory hierarchy with three directories at its root:
下图是我个人的工作空间目录: ~/Code/go 已经在环境变量配置。
工作空间一级目录
src目录, 源码仓库按照服务进行划分如
bin目录,可执行二进制文件
pkg目录,package object, build产物
最佳实践
在工作空间规划上应尽可能按照如上所示,尤其是源码目录尽可能按照项目归属版本管理系统比如github,gitlab划分。
创建第一个Project首先,我们按照Go推荐的做法完成了workspace的划分,然后开始一个git项目,以我测试的demo为例,假设叫cool.go。
目录非常简单,ecs,stringutil是两个package,下面以ecs为例说明如何创建及使用一个package。
使用
``go doc `` 查看package document
运行ut,结果如下:
上面就是一个简单的demo,通过调用aliyun ecs sdk实现ecs openapi操作,以上操作都是通过IDE图形界面进行构建运行,建议初学者可以先了解以下go原生的构建,打包,测试等。
了解更多可以下载官方demo,执行go get golang.org/x/tour/gotour
三、Go进阶以上简单描述了Go的开发环境配置,工作空间划分以及简单demo,后续会持续更新Go工程实践及优雅编程方面的实践,更多内容推荐阅读:
|
请发表评论