为什么说 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/


Golang是什么语言
  • 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对其他阶段在语言层面都有强力特性支持。举例如下:

  1. 设计阶段:利用 interface可以进行 protype编程,可以实现代码及文档。

  2. 编码阶段: godoc 统一代码格式

  3. 测试阶段:自带 go test便于测试,不像 C/C++ 依赖 gtest

  4. 发布阶段:上面说到可移植及打包一切,便于交付,发布,部署

  5. 维护阶段: Golang 天然支持 CPU扩展及其上面所说的便于交付,发布,部署

  • 大规模协作

Golang 引入 interface特性,实际在语言层面支持 SOLID设计原则中依赖倒置原则。再加上包的独立性,有利于大规模系统的大团队协作开发。

  • 编程友好

软件工程是人是关键因素。编码是核心阶段。 Golang 以下特性释放了程序员的生产力:

  1. 还算丰富的基础库

  2. 避免内存管理

  3. 天然支持并发


后   记

当然 Golang也有自己的缺点,如 GC问题,延时大等。但是用一个语言的策略就应该扬长避短,当然熟练应用 Golang的特性得深入学习与实践。


写在后面

个人网站:www.codesheep.cn (程序羊)

更多热文在此:

  ●  

  ●  系列连载文章

  ●  

  ●  

  ●  

  ●  

  ●  

  ●  

  ●  


以上是关于为什么说 Golang是最工程化的语言的主要内容,如果未能解决你的问题,请参考以下文章

Go 语言学习总结—— 为什么说 Golang 是面向未来的语言?

golang 历史

golang基础知识

Golang——详解Go语言代码规范

golang goroutine例子[golang并发代码片段]

近期小结