Go语言体验感想

Go语言体验感想

Tans 1,553 2021-06-26

Go语言体验感想

一、简单说点什么

首次接触到Go语言是在前些日子的字节后端技术训练营,项目背景是《抓到你了》,本项目简要概括就是简单实现一个登录注册等基本接口,但是要接入一定的风控,用以防止薅羊毛用户以及黑灰产用户,项目周期大概半个月,总体我们组(五人)的氛围比较好,我这边主要负责前端实现以及接口测试以及后期的测试。结果还是挺好的,在12个组拿到了Top 3(令我很意外)。其中导师对我们评价主要有以下几点(好像没有什么夸赞的地方….)

  • 用户环境不仅实在IP维度,同时引入了用户浏览器指纹信息,比较可行有效。
  • 令牌桶的使用可能会误伤单机用户
  • 代码结构比较混乱。

本项目总体开发语言是Go语言, Web框架为Gin,持久层框架为Gorm。后端接入Mysql用来保存用户基本数据,然后Redis用来维护令牌桶(本项目主要是根据令牌桶来控制访问速率)以及用户在线信息的Session项目地址

值得一说的是:字节的两位 Mentor 还是挺好的,技术精湛且非常热心,经常(加班)给我们授课!这也让我对字节有了新的认识。对大厂的认识不在仅限于BAT(B非Baidu,我认为是 ByteDance)。最后还投了字节的实习,但是碍于课程时间冲突等问题,没能安排。遗憾!下次一定!

二、聊点技术方面的吧

1、Go和Java的开发体验

Java:之前的项目开发主要是Java相关的,框架主要使用Spring Boot全家桶之类的。Java后端开发主要给我的感觉是业务流程清晰,构建流程也比较便捷,各个技术功能都能找到相应成熟且高效的解决方案。同时现如今Spring Boot的引入使得各个框架以及中间件拿来即用。只需简单配置即可。

Go:第一次看到Go写的路由 Router 感觉这玩意简单多了,只需要3行就可以实现一个简单的路由。但是其语法规则初次使用不是太习惯,比如说变量类型放在变量名后边,指针的保留,包管理等….相信后面的学习过程中,能get到这门语言其中的精髓。

r.GET("/ping", func(c *gin.Context) {
     c.JSON(200, gin.H{
          "message": "pong",
     })
})

2、Go学习规划

由于现在大三准备考研,因此找工作的事情暂时搁置,所以我想先把Java这门语言先放一放,学习一下Go语言以及框架(感觉用Go水比赛项目比Java省事多了)。最近几天找了许多Go语言的学习资料,现在整理一下。

3、学习资料

三、总结

随着Go语言的迅速发展,其靠着具有高并发以及轻量级特性闻名。字节等大厂都在开始广泛使用。下面的技术栈估计要往Go方向偏移了,同时分布式以及消息队列等框架思想大多差不多,所以对于Java方面下面主要放在语言本身了,而具体的框架思想以及业务使用流程估计要使用Go语言来进行实操了。希望Go能为我带来好运~

这篇文章会持续更新哦~