PHPer 转 Gopher 这一个月的体验~

上家公司离职后,歪打误着找了份Golang的工作,现在已入职开发Go一个月了,下面就分享下自己的心得哈,如有雷同纯属真实。
不习惯的地方
  • 用习惯了PHP的JWT和Websocktd的第三方包和框架,再用Go相当于从0开始写,很多都要自定义。就拿Websocket来说,一搞就好几天,WebSocket花了差不多一周,如果对channel和协程不熟悉,估计还要更长。

  • 把PHP面向对象的思维转到Go的结构体,另外结构体里还可以定义StructTag ,对于写久了PHP的人来说这应该算是颠覆性的重新学习了。

  • 整体来说代码量比PHP多三分之一。习惯了Laravel的Migration/Event/Listerner等深度封装的东西,为了后面团队扩充方便,用Go实现分层这一块也花了不少时间,差不多一周吧。

  • nil这块写多了会别扭,不过仁者见仁智者见智,我觉得还可以接受,就跟try/catch一样

再来说说爽的地方
  • Go的简单易懂真的上手很快,之前大约是2周时间就学完并开始做项目了,对于初学者来说,甚至都不用学协程和channel等概念也可以直接上手(除非项目用到)

  • 强类型这点也爽。不用担心项目会有什么隐藏的坑,基本上能编译通过上线就不会有问题,这一点让我很放心,换成是PHP团队,一个PHPer新手埋下了坑估计都够找很久了(这一点以前遇到过),所以以后项目也不用担心维护的坑问题

  • 第三方包和扩展已经很多了,Gitee的统计Go的第三方已经排行第三,足够做WEB和API用了,目前还没发现项目里还有不能满足的扩展。

说说基本一致的地方
  • Go Mod和Composer一样好用
  • Go的开发效率约等于PHP,这周下班前我大约做了业务级别的6个API接口,换成PHP也差不多,所以不用担心写Go的效率
  • 部署也基本一致,写了几个命令实现一键部署,没有想象中麻烦。
  • 性能老实说Swoole是稍微比go高的,我之前做的双核压测是高1000左右,不过到了一定的量级,最主要的瓶颈是在IO(数据库/Redis)了,所以这里我把它当成约等于一致。
分享下目前技术栈
  • Gin+Gorm
  • WebSocket + gRPC
  • Redis / Mysql
下一份工作还会继续做Golang吗?

应该还会,不过很看好hyperf这个框架,类laravel的写法,而且性能还不错,也会优先考虑

交流

话说,如果各位大佬有go的交流学习群私信我哈,一起学习加油。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 29

老哥几年经验

3年前 评论
ifconfig (楼主) 3年前
avrilko (作者) 3年前
vinhson 3年前
ifconfig (楼主) 3年前

hyperf吊炸天

3年前 评论
ifconfig (楼主) 3年前
晓鹤 3年前

大佬 转PHP之后。薪资有没有降呀 :grin:

3年前 评论
ifconfig (楼主) 3年前
jfpl (作者) 3年前

拿go写web的还是少,要不然也不会啥轮子也没有

3年前 评论
ifconfig (楼主) 3年前
晓鹤 3年前

别转回来了,再走走会有另外更好的世界等着你

3年前 评论
ifconfig (楼主) 3年前
php炎黄

go也并不是编译好就不会出错,我目前就遇到了协成中报错,整个进程都挂了

3年前 评论
ifconfig (楼主) 3年前
Klein 3年前

最近也看了go,拿go来写web,还是累,没轮子,而且工作选择少。除非目前工作php转型go,不然不适合。

3年前 评论
ifconfig (楼主) 3年前
全场我最姜姜姜丶 (作者) 3年前
Marrigan

学习了

3年前 评论

转go的路上很正常,尽量多接触很多语言

3年前 评论
xianyunyehe

用go去写web,如果你去调弱类型的语言的接口,真的是坑。因为你不知道他们啥时候会给你返回个啥类型 今天可能是 id;"12" 过几天就是id;12,这个还好,最坑的就是 null,弱类型出来的数据不判断,数据库读出来直接返回,{"list":null},你不得不提醒对方,给你强转一下,或者你去用interface

type User struct {
 Id interface `json:"id"`
}
3年前 评论
ifconfig (楼主) 3年前

hyperf真的不错 可大可小 在你需要的时候就能扩展

2年前 评论
meows 5个月前
meows 5个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!