人生苦短,我要换Go( 二 )
唯一有创新的地方是 Goroutines 和 Channel 。 Goroutine 是 Go 的轻量级线程解决方案 , 而 Channels 是与 Goss 交互的首选方式 。
Goroutine 非常轻量级 , 只需要几千字节的额外内存 。 因为 Goroutine 是如此的轻量级 , 可以有成百上千的 goroutine 在同一时间运行 。
Goroutine 和基于信道的并发方案使应用程序可以轻松地使用所有可用的 CPU 内核和处理并发 IoOs , 而不会使开发复杂化 。 与 Python/Java 相比 , 在 Goroutinerequires 上运行一个函数只需要很少的固定代码 。
编译速度快
与 Java 和 C 等语言的海龟速度编译相比 , 用 Go 编写的最大的微服务项目只需6秒钟就可以编译完成 。 Go 的快速编译速度是它的主要生产力 。
强大的生态系统
相对于其他新的语言 , 比如 Rust 或 Elixir , Go 有着巨大的生态系统优势 。 尽管它不能与 Java、 Python 或 Node 相提并论 , 但仍可以找到满足许多基本需求的高质量包 。
Gofmt , 强制代码格式化
Gofmt 是一个优秀的命令行程序 , 内置在 Go 编译器中 , 用于格式化代码 。 在功能方面 , 它类似于 Python 的 Autopep 8 。 Gofmt 以正式的方式对代码进行格式化 , 以避免所有这些参数 。
gRPC 和协议缓冲
Go 提供了一流的协议缓冲和 gRPC 支持 。 这两个工具完美地结合在一起 , 构建了一个通过 RPC 进行通信的微服务器 。 只需要编辑一个库文件 , 该文件定义 RPC 调用及其参数 , 服务端和客户端可以从该文件自动生成适当的代码 。 这不仅速度快 , 而且占用网络空间少 , 使用更方便 。
不过 , 虽然有这么多的优点 , Go语言也并不是那么的完美 。
相对Python , Go语言也有不足:
Go语言不是一种通用语言;
与 Go 集成的 API 没有官方支持的 Go SDK;
库的支持不够丰富;
依赖管理不够健全
不知道各位小伙伴或者身边的朋友是不是开始使用Go了呢?
参考链接:
【人生苦短,我要换Go】
文章插图
- 从掌柜的到万磁王,常程的魔幻标签人生
- 家境贫寒,考上人大成为他的人生转折点,建立起千亿的电商帝国
- 感动!盲人计算机科学家研发语音浏览器,致力科技改善盲人生活
- 非iPhone 12用户建议别买MagSafe适配器 充电速度慢到让你怀疑人生
- Y73s|千元5G手机vivo Y73s评测:为什么我要选它?
- 人生|线上占卜求不来正确的“人生指引”,只会着了“心灵捕手”的道
- 搞笑|快递员的搞笑人生
- 如果只推荐一本 Python 进阶书籍,我要 Pick 它
- 特写 |"我要把仓库建到美国东海岸",疫情笼罩海外订单猛涨,跨境电商成长背后有烦恼
- 99元的西圣Armor蓝牙耳机,价格低到让人怀疑人生
