当前位置:   article > 正文

Go后端开发 -- Golang的语言特性_golang后端开发

golang后端开发

Go后端开发 – Golang的语言特性


一、Golang的优势

1.部署极其简单:

  • 可直接变异成机器码;
  • 不依赖其他库
  • 直接运行即可部署

通过``可以直接进行编译:
在这里插入图片描述
编译完成的可执行程序是比较大的,因为已经把所有需要的库全部静态编译起来了;
通过ldd指令查看库依赖,发现除了标准的so、libc和pthread库外,不依赖其他的库,可以直接./main执行
在这里插入图片描述

2.静态语言

编译的时候就可以检查出来隐藏的大多数问题;
通过编译的时候就可以知道代码哪里有问题;

3.语言层面的并发

天生支持并发,充分的利用多核;

package main
  
import (
    "fmt"
    "time"
)

func goFunc(i int) {
    fmt.Println("goroutine ", i, " ...")
}

func main() {
    for i := 0; i < 10000; i++ {
        go goFunc(i) //开启一个并发协程
    }

    time.Sleep(time.Second)
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

请添加图片描述

4.强大的标准库

  • runtime系统调度机制
  • 高效的GC垃圾回收
  • 丰富的标准库

5.简单易学

  • 25个关键字
  • 内嵌C语法支持
  • 面向对象特征(封装、继承、多态)
  • 跨平台

在这里插入图片描述

6.运行效率对比

在这里插入图片描述

二、Golang的适用领域

1.应用领域

  • 云计算基础设施领域
    代表项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。

  • 基础后端软件
    代表项目:tidb、influxdb、cockroachdb等。

  • 微服务
    代表项目:go-kit、micro、monzo bank的typhon、bilibili等。

  • 互联网基础设施
    代表项目:以太坊、hyperledger等。

2.明星产品

在这里插入图片描述

三、Golang的不足

  • 包管理,大部分包都在github上
    所使用的大部分第三方库,都是托管在github上的;
    对于代码稳定性比较有风险;
  • 所有Excepiton都用Error来处理
    不存在try...catch...语法
  • 对C的降级处理,并非无缝,没有C降级到asm汇编那么完美(序列化问题)
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号