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

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

文章目录

  • Go后端开发 -- Golang的语言特性
  • 一、Golang的优势
    • 1.部署极其简单:
    • 2.静态语言
    • 3.语言层面的并发
    • 4.强大的标准库
    • 5.简单易学
    • 6.运行效率对比
  • 二、Golang的适用领域
    • 1.应用领域
    • 2.明星产品
  • 三、Golang的不足


一、Golang的优势

1.部署极其简单:

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

通过``可以直接进行编译:
Go后端开发 -- Golang的语言特性_第1张图片
编译完成的可执行程序是比较大的,因为已经把所有需要的库全部静态编译起来了;
通过ldd指令查看库依赖,发现除了标准的so、libc和pthread库外,不依赖其他的库,可以直接./main执行
Go后端开发 -- Golang的语言特性_第2张图片

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)
}

Go后端开发 -- Golang的语言特性_第3张图片

4.强大的标准库

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

5.简单易学

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

Go后端开发 -- Golang的语言特性_第4张图片

6.运行效率对比

Go后端开发 -- Golang的语言特性_第5张图片

二、Golang的适用领域

1.应用领域

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

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

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

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

2.明星产品

Go后端开发 -- Golang的语言特性_第6张图片

三、Golang的不足

  • 包管理,大部分包都在github上
    所使用的大部分第三方库,都是托管在github上的;
    对于代码稳定性比较有风险;
  • 所有Excepiton都用Error来处理
    不存在try...catch...语法
  • 对C的降级处理,并非无缝,没有C降级到asm汇编那么完美(序列化问题)

你可能感兴趣的:(Golang,golang,开发语言,后端)