引用公众号:进阶的脚步
链接:我是怎么从PHP转到Go的?
前言
最近换了工作,从入职到熟悉业务,到真正参与项目研发,这个过程有很多需要总结和思考的地方,主要是牵涉到技术栈切换,汇总一下分享出来,希望可以帮助到你。关于切换技术栈,对一个研发工程师来说,意味着战场换枪,海中换船。那么从PHP切换Golang,有哪些需要注意的呢?
有哪些需要注意的呢?
- 编程思想
这个听起来很空泛,很难具体的描述出来,但是跟实际研发关联很深。接触Go的时候,很容易带着主观思维去思考,活生生把Go写成了Java、PHP。所以,刚接触Go的时候不要背着历史包袱。要注重了解go所推崇的编程思想。
2.类比思维
在切换技术栈,当然在PHP所经常用到的技术中间件和开发工具也会跟着切换。
简单罗列一下:
一致性协调:zookeeper => etcd
消息队列:kafka => nsq
开发框架:Laravel/ThinkPHP/Yaf => Gin/Beego
注:当然在此只是简单说下,PHP开发过程用到的中间件不会局限以上几个,视公司技术选型而定。
学习资料分享
当然在学习中也踩了不少坑,在此罗列一下一路走来所用到的资料,希望能帮到大家。
(1)语言基础
- https://github.com/Unknwon/go-fundamental-programming《Go编程基础》
- https://github.com/Unknwon/the-way-to-go_ZH_CN 《go入门指南》
- https://github.com/Unknwon/go-web-foundation《GoWeb基础》
- https://github.com/Unknwon/go-rock-libraries-showcases《go库讲解》
(2)进阶相关
- 书籍《go开发实战》
- 书籍《go并发编程》
- https://github.com/golang-china/gopl-zh 《go语言圣经》中文版
- https://golangtc.com 《Golang中国》
- https://studygolang.com 《Go语言中文网 》
(3)适合阅读源码的开源项目
https://github.com/cw1997/NATBypass
简单的内网穿透工具,适合读源码https://github.com/siddontang/go-mysql-elasticsearch
MySQL与es的同步工具,代码量不大
注:在学习过程中有需要讨论的,可以在后台私信我。进阶的脚步,从未停止。