回顾一下我的Go语言学习之旅

wangzhongyang007 · · 84 次点击 · · 开始浏览    

## 起源 我学习Go语言,还要感谢我的同事【小天才】,后面都把我的同事称为【小天才】了。 小天才是前端开发,大概2年前被我招进公司,我们两个可以说是互相欣赏。 小天才觉得我很靠谱,放弃了几个更高薪的offer;我为了小天才能顺利入职,也和领导、老板大力沟通,争取福利待遇等等。 ## 环境 一个好的工作环境,往往会有好的结果。 我和小天才所在的团队在2年时间里,对公司的CMS、小程序、网站、活动专题等项目进行重构,后端使用PHP的laravel框架,前端使用vue以及nuxt框架。期间成长不少,我主要负责后端开发以及部分产品原型的工作,小天才在技术方面前后端通吃。 ## 契机 我们去年过年前工作量不是很大,有机会对项目进行再次拔高。我们俩都对性能有比较高的追求,私下有探讨过Go的特性,天生支持高并发等等!但是不深入,于是各自去找教程,学了不到一周。 ## 摸索 我在learnku社区买了Go语言的教程,79一套。因为之前买过Laravel的全套课程,很认可learnku社区。所以Go语言的也买了。 但是Go语言教程确实看的云里雾里,不知所云。可能基础的原因吧,总之是没有入门。 小天才在B站上找了【李文周】老师的Go语言视频教程,非常的好。我强烈推荐一下。 [视频链接](https://www.bilibili.com/video/BV16E411H7og?p=1) [博客链接](https://www.liwenzhou.com/) 当时有项目需求过来,为了方便小天才有足够的时间学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相关的文章,欢迎关注我一起学习**。 想和我交流的朋友可以**直接私信我**,或者**通过下面方式找到我**: **微信号(常用)**:wangzhongyang1993 **公众号**:王中阳Go

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

84 次点击  ∙  1 赞  
加入收藏 微博
被以下专栏收入,发现更多相似内容
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传