首页 文章 精选 留言 我的

精选列表

搜索[配置],共10000篇文章
优秀的个人博客,低调大师

Golang 环境配置与应用编译

微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车! Go 语言现在是越来越火了,出现在各个领域中,称它为21世纪的 C 语言一点都不为过,而且 Go 语言是 2009 年才发布的新语言,可以说它的特性是完全基于现代计算机来设计的,尤其它的看家本领 goroutine 协程,在高并发场景下使用简直不要太爽,非常适合写一些高性能中间件。 现在互联网发展得很快,我们也需要在空余时间培养第二技能,不然很快就会被互联网的发展潮流淘汰。而作为 Java 后端开发的我,早在 2017 年底的时候已经通过业余时间掌握了 Go 语言,并且还手写了一个微信支付 SDK 作为练手的开源项目,出乎意料地广受 GayHub 网友的欢迎,目前将近 200 star,是目前最受欢迎的 Go 语言版微信支付 SDK 之一: 也从侧面说明了现在 Go 语言生态还不是很成熟,但这也是一种潜力,并且我相信,Go语言是未来一大热门语言,因此 Go 语言可以说是后端开发者最好的第二技能选择之一。 它自带的命令诸如 go run、go build、go install 等,就可以编译运行 Go 应用了,这在 Java 中,想要更快速方便地进行编译,我们还需要依赖一些第三方工具,如 maven 编译工具,Go 的这些命令就相当于一个 maven 了,甚至比 maven 简单多了,而且还是原生支持,这篇文章主要是说一下 Go 的工作目录与编译的规则,初步体验一下 Go 的大道至简的魅力。 GOPATH GOPATH 是 Go 命令依赖的一个路径,也是 Go 项目放置的地方,在类 unix 系统下设置 GOPATH: export GOPATH=/Users/zhangchenghui/.go 查看 Go 环境变量: go env $GOPATH 目录有三个约定俗成的目录,一定要彻底理解: src:存放源代码,也是 Go 项目源代码的存放地址; pkg:编译后的生成的包,也就是 Go 的 .a 文件,这个后缀名的文件代表的是 Go 的一个包; bin:编译后生成的可执行文件(只有导入 package main 包的文件编译后直接是可执行文件 )。 应用编译 在 GOPATH 的 src 创建一个项目: cd $GOPATH/src mkdir mypakage cd mypakage 新建 test.go: // $GOPATH/src/mypakage/test.go package mypakage import "fmt" func Test() { fmt.Println("test~~~~~") } Go 语言有个约定俗成的做法就是函数首字母大写相当于 Java 的 public 方法,小写相当于 Java 的 private 方法。 在该项目目录中执行 go install 或者在任意目录下执行 go install mypakage,请注意该文件的包 package mypakage,意味着编译后会在 pkg 目录生成一个包。 接下来我们就可以引用这个包里面的方法啦,这和 maven 的 mvn clean install 一个道理。 在 src 目录中新建一个应用: cd $GOPATH/src mkdir myapp cd myapp 新建 main.go: // $GOPATH/src/myapp/main.go package main import ( "fmt" "mypakage" ) func main() { mypakage.Test() fmt.Println("hello, go") } 接下来就是要编译这个应用了,进入该应用目录,执行 go install,由于该应用直接导入的是pakage main 包,它是Go语言中唯一一个可以编译后直接生成可执行文件的包,因此会在 $GOPATH/bin 下生成一个可执行文件 myapp: 在任意路径下,执行: myapp 输出如下内容: 其实在该应用目录下也可执行 go build 命令进行编译,会在当前目录下生成可执行文件,而不会安装在 bin 目录下。 拉取远程包 Go 语言要如何获取远程包呢?在 Java 开发中,我们我可以通过 maven 自动地从 maven 中央仓库中下载依赖到.m2本底仓库中,但是在 Go 开发中,我们只需要使用 go get 指令就可以从远程拉取依赖包了: go get github.com/astaxie/beego 这条命令就会将源码下载到 src 目录中,并将源码编译后安装到 pkg 目录中: 因此,go get 相当于 git clone 源码下来,再执行 go install。 这里特别说明一下,go 1.12 已经发布了 go modules 作为官方的版本依赖管理工具,而我开源的微信支付 SDK 「wxpay」已经支持了该特性,后面也会单独跟大家讲解一下 go modules。 写在最后 如果你们也喜欢 Go 语言,可以给我留言,一起讨论学习,我会考虑在后续更新一系列关于 Go 语言的文章,与大家共同培养第二技能。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册