• 从零搭建Golang开发环境--go修仙序章


    1. 什么是go语言

    Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态 、强类型、编译型语言 。Go 语言语法与 C相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。

    -----------百度百科

    Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

    Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

    它是编译型语言。

    它考虑了多核计算机的执行特点。(并行编程)

    特点

    1. 简单易学习
    2. 开发效率高
    3. 执行效率好(号称21世纪的C语言)

    兼具效率、性能、安全、健壮等特性

    应用领域

    1. 服务端开发:日志处理、文件系统、监控服务
    2. 容器虚拟化:Docker、k8s、Docker Swarm
    3. 存储:etcd、TiDB、GroupCache
    4. Web开发:http/net、Gin、Echo
    5. 区块链:以太坊、fabric
    6. 云平台,目前国外很多云平台在采用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:网络流量抓包和重放工具

    语言环境安装

    在线下载:https://golang.org/dl/

    配置go环境变量;你机器上go的安装的目录

    60125872124

    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

    60125933452

    编译

    60126041401

    输入dir查看目录文件

    60126053594

    会发现多了一个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修仙之旅吧!

  • 相关阅读:
    我在面试中碰到的面试题
    JavaScript中数组去重的几种方法整理
    html网页外框布局设计总结
    css+Jquery实现抽拉式导航条和页面内容适应
    jquery不能实现对dom元素的伪类元素样式进行操作
    css的文字颜色渐变
    javascript函数立即调用
    javascript闭包
    js异步原理
    关于浏览器兼容问题
  • 原文地址:https://www.cnblogs.com/bingfengdev/p/13762511.html
Copyright © 2020-2023  润新知