Golang 的创建是为了实现最大的用户效率和编码效率.已经熟悉 Java 或 PHP 的程序员可以在几周内接受 Go 的培训(许多人最终会更喜欢它).在本文中,Dewet Diener 探讨了 Golang 的优缺点,以及它的测试驱动开发 (TDD) 如何完美契合.
Go 是一种精致的编程语言:它支持"所见即所得"的原则,这意味着清晰易读的代码和更少的复杂抽象.该语言本身易于使用且易于训练.尽管如此,作为一个相对较新的生态系统,要找到对 Go 具有广泛预先知识的工程师可能会很棘手.
然而,与其他编程语言不同,Go 的创建是为了最大限度地提高用户效率.所以呢,具有 Java 或 PHP 背景的开发人员和工程师可以在几周内获得使用 Go 的技能和培训——根据我们的经验,他们中的许多人最终更喜欢它.
在 Curve,我们大力提倡测试驱动开发 (TDD),Go 的框架与这种方法保持一致.通过简单地命名一个文件 foo_test.go 并在该文件中添加结构化测试函数,Go 将快速有效地运行您的单元测试.这一创新功能提高了生产力,因为它可以更加专注于测试驱动的开发和改进的同行评审机会.
Golang 具有出色的生产优化品质,例如内存占用小,这支持其在大型项目中作为构建块的能力,以及开箱即用的与其他架构的轻松交叉编译.由于 Go 代码被编译为单个静态二进制文件,所以呢它可以轻松进行容器化,并且通过扩展,将 Go 部署到任何高可用性环境(例如 Kubernetes)中几乎是微不足道的.
它提供了一种机制来保护工作负载,通过拥有非常纤薄的生产容器而没有任何无关的依赖项.这使得构建、部署和维护基于 Go 的资产更加直接和安全,并为希望建立或发展其微服务战略的公司提供了可靠的选择.
Go 是专门为满足我们快速发展的技术生态系统的需求而创建的.例如,Go 可以满足您构建 API 所需的一切,并将其作为其标准库的一部分.它使用简单,高性能的 http 服务器消除了团队设计新项目时经常发生的一些常见的 探索 和设计瘫痪问题——这对于一些其他流行语言(如 Java 和 Node.js)来说太常见了.
Golang 还通过其内置于语言本身的自动格式化程序巧妙地解决了代码格式化分歧.这完全消除了格式争议,进而提高了团队的生产力和注意力.
尽管我是 Go 的拥护者,但它显然也不是没有缺陷.一个争论不休的特性是 Go 没有显式接口,这是许多开发人员习惯的概念.虽然不是有害的,但它可以使选择最适合您的结构的接口成为一项任务.这是因为您不会像在其他流行的编程语言中那样编写 X 实现 Y,但您很快就会接受.
依赖管理也是另一个不属于 Google Golang 开发团队原始设计的功能.开源社区介入并创建了 Glide 和 Dep,最初的努力并没有完全解决问题.从 Go 1.11 开始,添加了对模块的支持,这似乎已成为官方的依赖管理工具.这些挑战并没有削弱 Go 作为一种高效编程语言的独创性,并且它继续为我们提供优于其他编程语言的显着优势.
Golang 吸引了全球敏锐的开发人员的注意,并且围绕它的兴奋继续增长.开源社区因有趣的项目而蓬勃发展;最著名的是 Docker 和 Kubernetes.
正是这种新鲜、有创意但又简单的包装吸引了我们去Go:它是一种令人兴奋的编码语言,可以帮助我们在 Curve 中快速开发以构建更好的产品.
Go语言在云计算、大数据、微服务、高并发领域应用应用非常广泛.BAT大厂正在把Go作为新项目开发的首选语言.
Go语言应用范围:
①.、服务端开发:以前你使用C或者C◆◆做的那些事情,用Go来做很合适,例如日志处理、文件系统、监控系统等;
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率.它提供了海量并行的支持,这对于 游戏 服务端的开发而言是再好不过了.
到现在Go的开发已经是完全开放的,并且拥有一个活跃的社区.
=================================
哪些大公司在使用Go语言:
①.、Google
这个不用多做介绍,作为开发Go语言的公司,当仁不让.Google基于Go有很多优秀的项目,比如: ,大家也可以在Github上 查看更多Google的Go开源项目.
Facebook也在用,为此他们还专门在Github上建立了一个开源组织facebookgo,大家可以通过 访问查看facebook开源的项目,比如著名的是平滑升级的grace.
阿里巴巴具体的项目不太清楚,不过听说其系统部门、CDN等正在招Go方面的人.
京东云消息推送系统、云存储,以及京东商城等都有使用Go做开发.
小米对Golang的支持,莫过于运维监控系统的开源,也就是
此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang.
==================================
Go适合做什么?为何这么多人偏爱Go语言?
Go强大的开发团队
①.、自由高效:组合的思想、无侵入式的接口
Go语言可以说是开发效率和运行效率二者的完美融合,天生的并发编程支持.Go语言支持当前所有的编程范式,包括过程式编程、面向对象编程以及函数式编程.程序员们可以各取所需、自由组合、想怎么玩就怎么玩.
这包括互联网应用、系统编程和网络编程.Go里面的标准库基本上已经是非常稳定了,特别是我这里提到的三个,网络层、系统层的库非常实用.
我相信这一点是很多人选择Go的最大理由,因为部署太方便了,所以现在也有很多人用Go开发运维程序.
它包含了降低心智的并发和简易的数据同步,我觉得这是Go最大的特色.之所以写正确的并发、容错和可扩展的程序如此之难,是因为我们用了错误的工具和错误的抽象,Go可以说这一块做的相当简单.
Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,稳定压倒一切.那么为什么Go相比于其他程序会更稳定呢?这是因为Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如go tool、gofmt、go test.
================================
我们为什么选择GO语言
选择GO语言,主要是基于两方面的考虑
① 执行性能 缩短API的响应时长,解决批量请求访问超时的问题.在Uwork的业务场景下,一次API批量请求,往往会涉及对另外接口服务的多次调用,而在之前的PHP实现模式下,要做到并行调用是非常困难的,串行处理却不能从根本上提高处理性能.而GO语言不一样,通过协程可以方便的实现API的并行处理,达到处理效率的最大化. 依赖Golang的高性能HTTP Server,提升系统吞吐能力,由PHP的数百级别提升到数千里甚至过万级别.
Go语言近两年的发展速度还是非常快的,一方面Go语言有强大的行业背书,另一方面Go语言在设计时充分考虑了当前的编程环境,加强了大数据量、高并发等应用场景的处理能力,强调编程语言自身对于处理性能的追求,相信Go语言在未来大数据和人工智能相关技术逐渐落地应用的背景下,会有一个较为广阔的发展空间.
以上就是土嘎嘎小编为大家整理的go语言容器化相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!