从零搭建Golang开发环境--go修仙序章
1. 什么是go语言
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态 、强类型、编译型语言 。Go 语言语法与 C相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
-----------百度百科
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
它是编译型语言。
它考虑了多核计算机的执行特点。(并行编程)
特点
- 简单易学习
- 开发效率高
- 执行效率好(号称21世纪的C语言)
兼具效率、性能、安全、健壮等特性
应用领域
- 服务端开发:日志处理、文件系统、监控服务
- 容器虚拟化:Docker、k8s、Docker Swarm
- 存储:etcd、TiDB、GroupCache
- Web开发:http/net、Gin、Echo
- 区块链:以太坊、fabric
- 云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。
成功的案例
- nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息
- docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。
- packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者
- skynet:分布式调度框架
- Doozer:分布式同步工具,类似ZooKeeper
- Heka:mazila开源的日志处理系统
- cbfs:couchbase开源的分布式文件系统
- tsuru:开源的PAAS平台,和SAE实现的功能一模一样
- groupcache:memcahe作者写的用于Google下载系统的缓存系统
- god:类似redis的缓存系统,但是支持分布式和扩展性
- gor:网络流量抓包和重放工具
语言环境安装
配置go环境变量;你机器上go的安装的目录
cmd输入go version查看版本
Go语言的Hello World
创建一个go语言的工作空间,并添加到环境变量
新建src、pkg、bin三个目录
在src目录下新建demo.go文件
package main
import "fmt"
func main() {
fmt.Println("Hello World !")
}
在该文件夹打开cmd 执行go demo.go
编译
输入dir查看目录文件
会发现多了一个exe可执行文件,文件默认的名称是当前文件夹的名称
我们可以指定可执行文件名称编译
跨平台编译
默认我们go build的可执行文件都是当前操作系统可执行的文件,如果需要编译其他平台的go可执行文件,需要先指定平台再编译
SET CGO_ENABLED=0 // 禁用CGO,cgo不支持跨平台
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
使用sublime打开可以发现是一个二进制文件,拷贝到linux上即可执行
(在执行之前需要查看文件是否有执行权限,不然需要授权)
Go语言项目目录结构
开发工具(IDE)
免费的VS Code(安装go插件)
收费的Goland
vim
等等...
最后
让我们开启Go修仙之旅吧!
从零搭建Golang开发环境--go修仙序章的更多相关文章
- Windows下visual studio code搭建golang开发环境
Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...
- 初探webpack之从零搭建Vue开发环境
初探webpack之搭建Vue开发环境 平时我们可以用vue-cli很方便地搭建Vue的开发环境,vue-cli确实是个好东西,让我们不需要关心webpack等一些繁杂的配置,然后直接开始写业务代码, ...
- Sublime Text 3 搭建 Golang 开发环境
安装Golang go语言主页: https://golang.org/ go语言安装下载: https://golang.org/dl 环境变量设置: GOROOT: GOROOT变量设置go安装的 ...
- 从零搭建react开发环境
早在六年前,前端开发已经实现了模块化.工程化开发,既然是模块化工程化开发那就少不了包管理工具,所以我们的第一步就是先从安装nodejs开始(安装nodejs携带JavaScript的包管理工具npm) ...
- 走进shiro,构建安全的应用程序---shiro修仙序章
0. 写在前面 在最近的一个项目当中,我们基于Shiro实现我们系统的认证和授权.借此机会,写几篇博客,总结一下在本次实践当中遇到的问题,和较全面地学习一下Shiro的知识点, 1. 权限管理 权限管 ...
- 搭建Golang开发环境
Go语言是谷歌 2009 年首次推出并在 2012 年正式发布的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性.谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 ...
- 从零搭建Vue开发环境
参考: 1.node安装和环境配置:https://www.cnblogs.com/zhouyu2017/p/6485265.html: 2.babel的安装:https://www.cnblogs. ...
- 搭建golang开发环境(1.14之后版本)
Go语言1.14版本之后推荐使用go modules管理依赖,也不再需要把代码写在GOPATH目录下. 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐) ...
- [日常] 搭建golang开发环境
下载目录:https://studygolang.com/dl32位选 go1.10.linux-386.tar.gz64位选 go1.10.linux-amd64.tar.gz uname -a查看 ...
随机推荐
- .Net自动更新程序GeneralUpdate,适用于wpf,winfrom,控制台应用
什么是GeneralUpdate: GeneralUpdate是基于.net framwork4.5.2开发的一款(c/s应用)自动升级程序. 第一个版本叫Autoupdate(原博客: WPF自动更 ...
- git最基础常用操作
单人开发托管够用 未列出的用到一个补一个
- 修改linux操作系统的时间可以使用date指令 运维系统工程师必会技术
修改linux的时间可以使用date指令 修改日期: 时间设定成2009年5月10日的命令如下: date -s 05/10/2009 修改时间: 将系统时间设定成上午10点18分0秒的命令如下. d ...
- echarts 画折线的一些需要去改动的地方
1.客户想要去要制定特定线条的样式(比如:颜色) 2.要去自定义改变后端传 的数值不合理的地方,在tooltiop中去展示出来 后续持更.....
- Idiomatic Phrases Game(最短路+注意坑点)
Tom is playing a game called Idiomatic Phrases Game. An idiom consists of several Chinese characters ...
- 1090 Highest Price in Supply Chain (25 分)(模拟建树,找树的深度)牛客网过,pat没过
A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...
- RPC之总体架构
要完成一个高可用.高性能的RPC框架,需要对其架构的设计进行梳理,这里参考xxl-rpc框架,对整个项目进行梳理. 以上就是项目的整个构架,分为四个部分: 第一个是服务发布与引入,基于JDK动态代理以 ...
- 9.深入k8s:调度器及其源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 这次讲解的是k8s的调度器部分的代码,相对来说比较复杂,慢慢的梳理清 ...
- [BUUOJ记录] [BJDCTF 2nd]fake google
本题考查python jinjia2的ssti,其实tplmap直接梭哈都可以 随便输入一个值,查看源代码就能看到一个Hint: 用下面的流程图测试一下,看看是什么模板引擎: 用Payload测试之后 ...
- 05_进程间通信 IPC
1.进程间的通信方式 1.磁盘交互: 速度慢,不安全 2.socket套接字 3.管道通信(Pipe) 4.消息队列(Queue, Manager().Queue, JoinableQueue) 5. ...