【快速学习】回顾一下我的Go语言学习之旅「建议收藏」

go (66) 2023-03-24 21:04

大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。

起源

我学习Go语言,还要感谢我的同事【小天才】,后面都把我的同事称为【小天才】了。

小天才是前端开发,大概2年前被我招进公司,我们两个可以说是互相欣赏。

小天才觉得我很靠谱,放弃了几个更高薪的offer;我为了小天才能顺利入职,也和领导、老板大力沟通,争取福利待遇等等。

环境

一个好的工作环境,往往会有好的结果。

我和小天才所在的团队在2年时间里,对公司的CMS、小程序、网站、活动专题等项目进行重构,后端使用PHP的laravel框架,前端使用vue以及nuxt框架。期间成长不少,我主要负责后端开发以及部分产品原型的工作,小天才在技术方面前后端通吃。

契机

我们去年过年前工作量不是很大,有机会对项目进行再次拔高。我们俩都对性能有比较高的追求,私下有探讨过Go的特性,天生支持高并发等等!但是不深入,于是各自去找教程,学了不到一周。

摸索

我在learnku社区买了Go语言的教程,79一套。因为之前买过Laravel的全套课程,很认可learnku社区。所以Go语言的也买了。

但是Go语言教程确实看的云里雾里,不知所云。可能基础的原因吧,总之是没有入门。

小天才在B站上找了【李文周】老师的Go语言视频教程,非常的好。我强烈推荐一下。

视频链接

博客链接

当时有项目需求过来,为了方便小天才有足够的时间学Go(小天才学习新技术确实非常狂热,不能打乱我天才的节奏),我便自己把大多数需求接了下来。

你追我赶

终于过了一概1周,我把新需求搞定了,开始有比较充足的时间学习Go了,我算是走了小天才的老路,看视频教程,看他已经学习过的知识点。

下楼遛弯的时候我俩就探讨今天遇到的问题,他能回顾一下知识点,我能提前了解一下后面的知识。一个当复习了,一个当预习了。

这种互相提问,解答的方式非常好。我俩能比较快的理清知识脉络,能给对方讲明白说明自己已有了比较深的理解。

但是我觉得和小天才的距离有点大,就不看视频了,刷李文周老师的博客,写实例代码。每段代码我至少敲了3次:第1次整理好思路注释,盲敲;第2次比对我的代码和示例的区别,优化思考;第3次把注释删掉,完全从头到尾撸1~2遍。

因为我认为编程是手艺活,技术活,必须多动手!

必须多动手!

必须多动手!

落体项目

春节前,公司做了一个还算复杂的H5活动,类似支付宝集5福吧,我们俩决定用Go来写。

小天才下手贼快,我刚出完原型,设计完表结构,小天才就用Go把核心逻辑写好demo了。

我在demo的基础上继续写了分配方案、不同概率集卡的拉新数量、倒推活动成本等等。

有了这些数据基础我们就可以放心大胆的写业务逻辑了。

最终这个项目是小天才操刀,我检查了下代码逻辑,做了充足的测试。

活动效果非常的好,给我司公众号拉新超过1万+,老板很满意。

进阶

因为老板很满意嘛,元宵节又搞了一波类似的活动。

这次主要是我操刀,在小天才春节活动的基础上优化了部分代码,这就是传说中的站在巨人的肩膀上~

我大概整理一下我们使用到的技术点:

  • 部署到Nginx
  • 跨平台编译
  • goroutine
  • channel
  • gorm
  • gin框架
  • Redis缓存
  • 日志统计
  • 登录中间件
  • cors中间件
  • session中间件
  • 反射
  • 读写锁
  • docker
  • 云效流水线部署
  • K8S容器编排

总结反思

独行难,众行易。

我上学的时候还是愿意写点东西的,而且文笔还不错。

工作之后一直沉迷于撸代码无法自拔,荒废了码字这个天赋点。

还好赶上了【掘金Go主题月】的活动,燃起了我的斗志,没错我就是喜欢你们的大茶缸子。

(还有一件事:一个机缘巧合的机会和大佬交流了技术,大佬认为我过于草莽,虽然能干活,而且效率可观,但是基础薄弱,沉淀不足。)

我考虑写博客做总结,是一个非常不错的选择!

继往开来

我以后在撸代码的闲暇之余,一定多思考,多总结。

争取也多撸几篇有深度,有干货的好文章出来。

一起学习,升级打怪

我们搞了一个对学Go真正有帮助的群,欢迎加入:

公众号:程序员升级打怪之旅

微信号:wangzhongyang1993

发表回复