从 PHP 成功转 Go,我经历了什么?

imooc编程手记 2021-04-09 08:30




















慕课网 程序员的梦工厂


想和本文作者——前蚂蚁金服技术专家/Go语言 Contributor 曹大直接交流吗?

请查看文末福利哦!

全文共 1771 字,阅读大约需要 6 分钟

作者 | 曹春晖(Xargin)

编辑 | 厂长

作为一个 Gopher 是幸运的,我们永远都站在了时代的最前沿。


01


我也曾经是一个 PHP 程序员,那时候几个要好的同事在一家创业公司里努力奋进,追逐着改变中国的农业 O2O 的梦,但这个梦很快就被资本打醒了。


失业的我要去找寻新的机会,作为一个技术人员,摆在面前的选择看起来有很多,但其实并不多。


几乎所有的公司都希望我的语言经验可以直接迁移,不接受我去面试 PHP 以外的岗位。所以我去了一个可以写 PHP 的地方,在公司内伺机而动,最终如愿以偿地转为了一个 Gopher。


02


我们用 Go 重构了一些公司内的老代码,让这些系统相比 PHP 更好维护,性能更高。不得不说,更换语言之后,我的幸福感急剧上升。从此我不但可以继续写那些我熟悉的业务代码,同时造起轮子来也得心应手。


比如,我可以用 Go yacc 去写一个自己的 SQL parser;可以用这个 SQL parser 做一个神奇的 sql 审校工具;也可以去业界先进的 etcd 项目里学习 raft 算法;还可以在 TiDB 里看看未来的数据库到底长什么样子;更可以去了解各种高并发场景下其它工程师的总结与思考,通过与他们思想碰撞提升自己。



社区让我接触到了国内最优秀的一批工程师,他们层出不穷的想法总是能够带给我灵感。同时随着对 Go 的深入学习,我也接触到了同样优秀的国外工程师。


可能是在 golang-nuts 上请教问题,也可能是在 reddit 上回答一些 Gopher 新手的问题,也可能是在 go 的官方 repo 向官方提 proposal,摆事实讲道理希望官方对语言的某些问题进行改进。


我终于开始觉得我日常在干的是和计算机科学沾边儿的工作,而不是工厂流水线上的螺丝钉工人。


Go 语言的设计本身就像是一个非常微型的操作系统,所以毕业了多年之后,我也重新回炉阅读了上学期间读得云里雾里的操作系统课本,买来了所有流行的讲语言垃圾回收的书(还没读完哈哈)。也读懂了很多曾经带给人心理阴影的大部头。


语言是技术人员之间的一种连接,Go 让我与业务项目以外的工程师们产生了大量的交流与联系。


有时是做中间件的,有时是做网关的,有时是做 k8s 和 etcd 的。这种连接使我的视野不囿于狭小的一隅,我开始逐渐理解技术在不同的领域怎么样产生它的价值,各个领域的人怎么样去运用这样的工具,他们的理想、抱负和抱怨。


这让我对语言的优点和缺陷也有了更深的理解,开始学会以更底层,又更全面的角度去审视一门技术。


我也开始总结自己的使用经验与方法论。说实话,只要有兴趣,也可以用几个月的时间完全调整自己的工作方向。


03


不知不觉间,这门语言已经火遍了大江南北。


即使你不知道每年一度的 GopherCon,你也应该知道声势浩大的 Gopher China,社区活动带动了工程师的激情。我从来没见过这样热闹的社区和这样热情的分享。除去个别公司的广告不谈,大部分工程师的分享都是纯粹而真挚的。每一次的分享总会有那么几个让人眼前一亮,原来项目还可以这样做!


自 2015 年以来,除了绑在 Java 战车上的公司,大部分国内的大公司的新业务几乎一边倒地选择了使用 Go 来编写


例如:滴滴,百度,字节,高德,腾讯等等耳熟能详的公司都开始将资源倾斜至 Go 来完成他们的新业务项目。曾经在知乎上被当成反面案例的腾讯,现在在某 bu 也有了统一的框架,统一的规范和统一的 CI/CD,时光荏苒,士别三日。可以认为 Go 已经成为了各家大公司之间的通行证。


下面的图来自腾讯研发大数据报告:


尽管早期选择 Go 需要面对各种“是不是基于政治”考量的质疑,在 2021 年的当下,如果你选择使用 Go 来做项目,已经没有什么人可以质疑你了。


这门语法简单,从工程出发,设计较(防喷宝典)完善的语言的魅力在于我们可以短时间学会他,在压测中优化他,在长期使用中精通它


传统的语言要么要面对复杂的内存安全问题,要么要面对繁复的历史包袱。其它看起来非常完善的语言,在云原生时代,则碰到了各种容器部署水土不服的问题。


即使你不是一个 Gopher,相信你也会对云原生感兴趣。在这个时代,几乎大部分的云原生基础设施都与 Go 有关系,随着时代洪流向前的我们,不去学习云原生的重要组织基因 -- Go 也是说不过去的。


当今 service mesh 和 dapr 对传统架构进行了颠覆,而这些工作中都有着 Go 的影子,可以说作为一个 Gopher 是幸运的,我们永远都站在了时代的最前沿



路走对了,就不怕远。如果你目前还是一个只会写业务的程序员,希望你也能像我一样勇敢地打破藩篱,成为更好的自己。



END



想纵向提升你的Go语言实操能力吗

想要和世界知名Go技术专家直接交流吗

慕课网特邀2位重重重量级嘉宾,进行技术分享!

大咖群现在免费进入!

群内更有独家学习资料免费赠送哦~

(左右滑动查看)

01

02

03




END


精彩推荐

1

程序员:第一次和喜欢的女生吃饭该去哪吃?

2

韩信大招:一致性哈希!

3

字节跳动、阿里、百度正在招聘,程序员们究竟如何进入大厂?