Go语言·不服就干

不知不觉,我们团队选择go语言已经两年了,从最开始摸着石头过河到现在的驾轻就熟,感慨万千,总结来说:不服就干

孙悟空不服天庭,所以大闹天空,那我们不服谁呢?可能不服某位年龄不低的老大哥对世界的绝对统治吧,想要翻出点浪花来。

是的,不服那就干!干之前当然得考虑过潜在的风险,最终确定在可控范围之内,同时因为Go的简单,团队转型也非常顺利,大概一周时间,就华丽丽的转型成功。

项目方面,先后做了消息推送、IM即时聊天、API网关、统一监控平台(系统监控、应用监控、全链路跟踪、服务可用性、业务监控等等),一路下来,最大的感受就是‘爽’,其次就是‘风一般的自由’。

Go语言本身并不自由,较为强制的代码规范、泛型的缺失、略啰嗦的错误处理等,但是我们为什么感受到‘风一般的自由’呢?原因就在于Go实在是太他么的简单了: 简单上手、简单开发、简单测试、简单部署、简单维护,基本所有你能想到现代化软件研发过程中备受诟病的复杂性问题,在Go这里,都不存在。

可能有同学要说了,这个世界上不仅仅Go语言简单,比如python,能被科学界和学生普遍接受,也是因为简单啊,而且名气比Go大,生态比Go好,你们为什么不选Python,别急,且听我细细道来。

不知道大家有没有思考过,是什么让我们在用一门工具时能感受到:哇,牛逼,答案可能是:是否拥有简单、强大的生产力。

Go的生产力体现在以下方面:

1.简单的语法

▪ 新加入的员工很容易就转型为Go程序员,而且一上手就能有不俗的开发效率

▪ 有过丰富开发经验的同学肯定都很痛恨去维护历史代码吧?各种神奇的magic代码,就算你喊破喉咙也没人能帮你解决这些,还好Go的语法足够简单,你想写出黑魔法代码估计也无能为力,因此Go的三方库代码可读性一般都很好

2.代码规范强制统一

▪ 原因基本同上 ▪ Go的标准工具链提供了代码格式化

3.部署简单

▪ 在本地交叉编译为目标平台的可执行文件,无需任何依赖,扔上去就可以运行 ▪ 容器亲和度极高

4.优秀全面的标准库

▪ 基本上正常开发需要的所有功能,标准库都支持了,而且简单易用,稳定性和性能俱佳

▪ 我们有express、tomcat

go: 我们有标准库

▪ 我们有强大的fastjson

go: 我们有标准库

▪ 我们有netty

go: 我们有标准库

▪ 我们有强大的异步回调和纤程库

go: 我们只需要在任何函数前加一个go关键字即可

▪ 我们有强大的三方性能分析工具

go: 我们有自带的标准工具链

▪ 我们有强大的测试框架

go: 我们有自带的标准工具链

5.写Go项目基本不用担心性能问题

▪ 语言级并发和高执行性能决定了只要你用Go写出了项目,那么性能一般都是不错的(数据库性能和语言性能无关)

▪ Go强大的标准工具链支持,能让项目的任何一段代码执行过慢、内存占用过高等问题纤毫毕现,我们团队解决过多个棘手的性能问题,在其它语言可能需要花费一两天的功夫,对go来说10分钟足矣

6.良好的生态

▪ 是的,我承认,go的生态远远比不上java,但是该有的都有,而且三方库质量还都高,作者也普遍较为活跃

▪ 现代化的框架、平台对go往往都支持的很好,甚至是官方原生大力支持,比如grpc、tensorflow等等

7.极快的编译速度

我要编译了,请允许我喝杯咖咖咖咖啡啡啡啡放松下,shit,这就编译完了?咖啡包装还没拆

8.IDE亲和

go的ide插件都是go语言自己写的,因此跨平台支持的很好,对于ide的亲和度也很高,vscode、idea、vim都能很好的写Go代码

9.软实时级别的GC

▪ 微妙级别的GC时间,决定了Go可以在部分实时领域大展身手,比如实时证券行情等 ▪ 我们就不必借助于C++、C去实现高性能代码了,大大提升了开发和维护效率

写了,这么多,前面的为什么在一些场景不选python,大家应该也明白了,说到底,还是想追求'风一般的自由'

快到尾声了,再简单提下Go适合的应用场景

▪ Web服务 ▪ 中间件基础服务 ▪ DevOps服务 ▪ 云计算 ▪ 游戏、直播等实时性要求较高的领域 ▪ 跨平台可执行脚本

最后,再送大家一些福利,自从用了Go,团队加班显著减少,终于有时间陪伴女朋友了,想怎么happy就怎么happy。

我们都是平凡的,也都渴望着成功。一路千辛万苦,跨过山和大海,想要逆袭,可是你敢像孙大圣那样放弃所有吗?

不服就干。


关于作者

作者: 孙飞撩技术 来源: 简书

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2018-01-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏斑斓

回眸Unix设计哲学

我觉得一切伟大的设计似乎都是不朽的,例如矗立在雅典卫城石灰岩山岗上的帕特农神庙,米开朗基罗刀工斧凿下充满雄性魅力的大卫,毕达哥拉斯对勾股定理的演绎证明,乱臣贼子...

3296
来自专栏程序员互动联盟

如何深入学习C语言?

疑惑一 遇见编译错误了咋办? 经常见有小伙伴,呼呼的把一大段的编译错误呈现在群里,然后问这是啥原因,其实解决编译的办法还是挺多,现在重点说下编译错误是怎么出来的...

4045
来自专栏知晓程序

微信小程序重磅更新!支持分享和扫码功能,很可能 28 号正式发布

1484
来自专栏人人都是极客

计算机的基本组成

严格来讲计算机从诞生到现在经历了很多阶段,已经发展成为一种自动地、高速地、精确地进行信息处理的电子设备,也是20世纪的重大发明之一。

1352
来自专栏后端技术探索

12306系统高并发探讨

铁道部的12306网上购票系统着实“火”了一把,在中国境内可谓是无人不知无人不晓,曾有人在网上戏称12306为“史上最牛电商”。12306购票系统的初衷是系统通...

6262
来自专栏云计算D1net

将数据迁移到云:回到未来?

数百家公司现在已经证明,单一数据泄露可能会造成长期的经济,法律和品牌上的损失。除了数据保护之外,仅仅管理云中的数据是不同的,如果做法不当,成本,复杂性和风险会使...

1310
来自专栏数据猿

对象存储来势汹汹,究竟谁是“幕后推手”?

存储圈真会玩,继网络接入存储、块存储、文件存储之后,对象存储也掀起了新一轮发展浪潮。银行、保险、交通集团等传统企业纷纷换上了对象存储,真怀疑IT部门的单身狗只是...

4275
来自专栏Crossin的编程教室

几个以前发过、回复过很多次、比较有用的学习资源

最近事情有些多,所以“每周一坑”偶尔不得不跳票一下,各位莫急哈。 既然来都来了,说几个经常被问到的资源,应该还是不少人需要的。已经看过的就忽略。有其他好资源欢迎...

28511
来自专栏非著名程序员

是的,这是我的记录之道

前几天分享了两篇关于我的学习之道,面试之道的文章。颇受大家的好评,很多人都感觉受益良多,给了他们借鉴学习的经验。对此,其实我心里还是非常欣慰的,今天继续分享关于...

1345
来自专栏java达人

软件开发接力赛的最后一棒:上线发布

新产品新功能开发、测试完成后,就需要上线发布,可能中间还有个预发的过程,但一般的小团队没有精力也没有能力去维护这么多的环境。上线之后,绝非万事大吉,你将面临一大...

1798

扫码关注云+社区

领取腾讯云代金券