为什么说 Golang是最工程化的语言
Posted CodeSheep
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么说 Golang是最工程化的语言相关的知识,希望对你有一定的参考价值。
来源丨沉风
https://blog.ipds.top/2018/07/03/golang%E6%9C%80%E5%B7%A5%E7%A8%8B%E5%8C%96%E7%9A%84%E8%AF%AD%E8%A8%80/
php
是最好的语言。Haskell
最难学的语言。而
Golang
则是最工程化的语言。
下面分别从 语言层面及 软件工程 两个方面进行说明。
安全性
相比较于 C/C++
, Golang
不支持指针操作,不支持隐式类型转换,支持内存溢出与越界检查。
并发与扩展
通过 goroutine
, Golang
从语言层面上解决了并发与扩展的问题,而不像 C/C++
, JAVA
通过框架来解决这个问题(关于并发问题可以看看上一篇深度好文《》)。 Golang
自适应多核运行。
简单
语法简单,代码不涉及内存管理,上手容易。新人学习几天就可以上手写代码。
可维护性
自带 godoc
统一代码格式。 一个文件夹对应一个包有利于代码模块化。
打包一切
相比较于 C/C++
,动态库和静态库的依赖, Golang
将所有编译成一个二进制文件。 解决依赖带来高度耦合问题,这样十分有利于交付与部署。
可移植
支持多种体系架构与不同的操作系统以及跨平台编译。
高效率
Golang
实现了程序员开发高效率与机器运行高效率两者的有效结合,进而实现经济上高效率。
相比较于 C/C++
, Golang
编译速度更快了。特别是大型项目,以前用 C语言的时候,在刀片服务器上时编译一个测试版本都要半个小时左右。
生态成长
背靠 Google
,从 09年发布已来,已经在云生态占据绝对主导地位。有不少明星开源项目。如 Docker
、 Kubernetes
、 Prometheus
、 Hyperleder
、 Ethereum
、 Etcd
等。随着云时代不断发展, Golang
生态一定会越来越强大与丰富。
流程
一般软件工程流程分为规划、需求、设计、编码、测试、发布、维护等几个阶段。除了规划与需求阶段, Golang
对其他阶段在语言层面都有强力特性支持。举例如下:
设计阶段:利用
interface
可以进行protype
编程,可以实现代码及文档。编码阶段:
godoc
统一代码格式测试阶段:自带
go test
便于测试,不像C/C++
依赖gtest
发布阶段:上面说到可移植及打包一切,便于交付,发布,部署
维护阶段:
Golang
天然支持 CPU扩展及其上面所说的便于交付,发布,部署
大规模协作
Golang
引入 interface
特性,实际在语言层面支持 SOLID
设计原则中依赖倒置原则。再加上包的独立性,有利于大规模系统的大团队协作开发。
编程友好
软件工程是人是关键因素。编码是核心阶段。 Golang
以下特性释放了程序员的生产力:
还算丰富的基础库
避免内存管理
天然支持并发
当然 Golang
也有自己的缺点,如 GC
问题,延时大等。但是用一个语言的策略就应该扬长避短,当然熟练应用 Golang
的特性得深入学习与实践。
个人网站:www.codesheep.cn (程序羊)
更多热文在此:
●
● 系列连载文章
●
●
●
●
●
●
●
以上是关于为什么说 Golang是最工程化的语言的主要内容,如果未能解决你的问题,请参考以下文章
Go 语言学习总结—— 为什么说 Golang 是面向未来的语言?