Go后端开发 -- Golang的语言特性
2023-12-20 14:31:37
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)
}
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汇编那么完美(序列化问题)
文章来源:https://blog.csdn.net/kissland96166/article/details/135103471
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!