编程语言应用

注册

 

发新话题 回复该主题

go语言编程都有哪些优点 [复制链接]

1#


  随着互联网的不断发展,越来越多的人都在通过自学或者参加达内培训来学习更多的编程开发知识,下面我们就通过案例分析来简单了解一下,go语言编程都有哪些优点。


  1、部署简单


  Go语言编译生成的是一个静态可执行文件,除了glibc之外再没有其他的外部依赖。这也使得部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需的各种包、库的依赖关系,这就大大减轻了维护的负担。


  2、并发性好


  Goroutine和Channel使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机制以及由此带来的各种问题。单个Go应用也能有效地利用多个CPU核,其并行执行的性能很好。这一点与Python也是天壤之别。多线程和多进程的服务端程序编写起来并不简单,而且由于全局锁GIL的原因,多线程的Python程序并不能有效利用多核,只能用多进程的方式进行部署,其实在很多场景中这样并不能有效地利用计算机资源,这也是饱受Python爱好者诟病的地方。


  3、良好的语言设计


  从学术的角度讲,Go语言其实非常平庸,不支持许多高级的语言特性;但从工程的角度讲,Go的设计是非常优秀的:规范足够简单灵活,具有其他语言基础的程序员都能迅速上手。更重要的是Go自带完善的工具链,大大提高了团队协作的一致性,比如gofmt自动排版Go代码,这在很大程度上杜绝了不同人编写代码排版风格不一致的问题。把编辑器配置成在编辑存档的时候自动运行gofmt,这样在编写代码的时候就可以随意摆放位置了,存档的时候gofmt会将它们自动变成正确排版的代码。此外,还有gofix、govet等非常有用的工具。


  4、执行性能好


  Go语言虽然不如C和Java,但其通常比原生Python应用还是高一个数量级的,适合编写一些瓶颈业务,内存占用也非常低。


  那么Go语言适用的场景都有哪些呢,具体如下:


  服务器编程,如果大家以前习惯使用C或者C++来进行服务器编程,那么用Go来做也是很合适的,例如日志处理系统、数据打包、虚拟机处理、文件系统等。


  分布式存储、数据库代理器等。


  Key-Value存储,例如工作中常见的etcd。


  网络编程,目前这一块应用得广,包括Web应用、API应用、下载应用等。


  建议大家在平常的DevOps中,除了使用Python之外,还可以用Go语言来编写些项目需求或自动化运维的API,这样来加深理解,熟悉其语法特性,相信大家终会被其大道至简的设计哲学所折服。

分享 转发
TOP
发新话题 回复该主题