课程学习
从七月中旬开始笔试,入营组队以来,迄今为止差不多一个月的时间,这一个多月的时间里,每周都有好几节与项目实战,企业实践非常相关的课程。包括有:
- Go语言基础
- Go语言工程实践
- 高质量与性能调优实战
- Http框架修炼之道
- 打开抖音会发生什么
- 将我的服务开放给客户
- 深入浅出RPC框架
- 带你认识存储&数据库
- Go框架三件套(Web, RPC, ORM)
- 大厂程序员是怎么用Redis的
- TOS对象存储实战
- 走进消息队列
- 微服务架构原理与治理实践
- 架构初探之谁动了我的蛋糕
- 网站常见安全漏洞
- 高性能Go语言发行版优化与落地实践
- 深入理解RDBMS
- 从零拷贝看性能优化
不得不说,字节跳动的课程质量非常高,一个月的时间让我学习到了非常多在学校不曾接触到的知识,也对服务端开发这个岗位有了更加深刻的理解。课程中包含了非常多的字节内部自己做的企业实践及优化方案,这些知识更是非常难得的。但是由于自身的经验较少,对相关项目也没有太多的接触,一些部分听起来会有些吃力,但我仍然做了一些笔记,希望以后在自己的生活和工作当中能够逐渐理解到这里面深刻的内涵。
抖声大项目实战
毫无疑问大项目实战才是参加字节跳动青训营的真正意义,和来自全国各地志同道合的同学合作写代码完成项目。时间匆匆忙忙过去,我和小组成员也磕磕绊绊地算是将近把大项目搞得七七八八。组内的同学基本都在读研和工作,大家身边都有各自的事情。然后由于一开始并没有确立一个队长,因此直到8月中旬我们才开始了第一次线上会议。这一点是需要改进的地方,一定要尽早定好计划。
在编写大项目代码的过程中,由于前期数据库设计的问题,当时确立的类型为gorm.Model自带的id uint,然而文档接口给的许多字段的定义是int64 或者int32,这导致了大家都把各自的接口方法写完了,但是因为数据库的类型要变更导致所有方法要变更,这是非常严重的错误。所以一定要提前就在数据库上做好规划。
最后就是完成项目的过程中确实有非常大的收获,对go语言也从一开始不适应其代码的编写方式到喜欢上这门语言。也更加了解了MVC架构,采用MVC架构来实现各个接口的CRUD。在小组中,我还承担了将用户的关注,粉丝计数加入到redis当中。前期也分析了该怎么去做这个设计,对redis有了更加深刻的理解,redis适合存热点数据,一个用户可能有大量的粉丝关注他,因此频繁地写数据库会导致压力过大,需要用到redis。最后由于时间问题,我没有来得及更加深入地学习微服务和消息队列的实践,有一些遗憾。但是在日后的学习中,我希望自己能把抖声这个大项目自己完整地实现一遍,才有更加深入的理解。
结语
最后,我非常感谢字节跳动能提供青训营这样一个平台让大家来学习交流,字节跳动也是我的梦中情厂,希望自己好好提升技术水平,有朝一日能进入字节创造价值!