tinyTikTok 项目总结|青训营笔记

215 阅读5分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 32 天

本篇文章归档于 “第五届字节跳动青训营”,主要是为了完成和记录掘金的 “伴学笔记创作活动” 活动,如果你对我的其他文章感兴趣,可以去我的 专栏 中逛逛看有没有你想要的东西。

放在前面的话

先把结果放前面吧,tinyTikTok 最后成了一个半成品,虽然这不是我想看到的,但也只能接受这个结果了。

tinyTikTok 完成度

代码的基础功能都实现了,也能正常跑通,但没空检查环境配置,不敢保证其他人能正常跑通(果梅纳塞

我认为值得一提的:

  • 代码结构:参考的 k8s 一类的顶级项目,是一个兼具扩展性和维护性的项目;(这是所有项目都会面临的一个问题,如果经验不足,很容易发生过度设计
  • 代码注释:所有函数和复杂代码几乎都写上了注释,可读性比较高;
  • 认证服务:根据客户端的 query,判断这是一个高度信任的场景,所以采用的 OAuth 密码式认证;
  • 服务解耦:分为四层:model、controller、service 和 store,每层都能无痛扩展,但需要注意不能循环 import(如果写了屎山,估计也会被报错hhhh;
  • 应用架构:抽象了一层 app 接口,用于统一构建应用,这样启动服务就不需要反复造轮子了;(当然,写到后面发现没时间写下一个服务了
  • ID 生成器:用雪花算法完成了一个 ID 生成器,只要保证 machine ID 唯一,就能保证生成 ID 唯一,而 machine ID 在微服务配置中可以预定义;(原本有做微服务打包部署的打算,依然是时间不够
  • 静态代码检查:利用 golangci-lint 去定义规则,对代码先进行一轮静态代码检查,可以说是项目的底线。

我认为不足的地方:

  • 中间件选型:采用了 gin-jwt 而不是 oauth2 做认证,gin-jwt 每次都会校验 token,对于 tinyTikTok 这种高并发应用并不合适;
  • 代码风格:项目受到腾讯大咖的关注(非常荣幸),被一眼识破第一次写 gin,有一股 java 味儿;(确实撸 tinyTikTok 前这段时间一直在玩 Java 和 C++ hhhh
  • 超前设计:如上提到,很多地方存在超前设计之嫌,但我想狡辩一下,tinyTikTok 是我通宵 5 天一个人赶出来的代码,很多计划的功能都来不及写,但已经提前规划好了;(但 ddl 没计算好也是自己的锅
  • 代码测试:这份代码一个测试也没有,非常糟糕,压测没做,数据 mock 没有,甚至连单测都没有;

tinyTikTok 回顾

记录一下整个冬令营的心路历程:

  1. 和四个研二的学长学姐组队:感觉自己可以躺了,开心了好一阵,可以不用带脑子了;
  2. 青训营的课程:总结得都挺不错的,但只能算可以用,不到入门,真要学还得自己挖,而且节奏非常紧,如果想弄懂,对于大部分大三及以下的同学应该会很难受;(还好根据自己的情况调整了节奏,官方节奏完全可以说是不当人的
  3. 开过一次会:大家算是见了一面,分了任务,但没选型,只打算用 gin+gRPC;
  4. 结项前一周:两个学长回悉尼毕业,一个学长毕设开题,一个学姐提前开学,留个大怨种烂尾5555;
  5. 连通 5 天宵:撸出来一座屎山,然后去找队长要了一下身份,怎么说也有两分哈哈哈哈
  6. 结项后:补了 3 小时觉,然后开车去看黑灯的脱口秀(玩到凌晨 2 点到家,没猝死应该是万幸

tinyTikTok 展望

其实说到这里会发现,tinyTikTok 始终是个 toy program,这并不是心中的优质项目,还有很多功能没提及(跑通接口就跳过讨论了):授权策略,视频压缩,代码生成,数据采集,异步上报......(可以看我在 服务功能 里画的饼hhhh

其实都在我的设计,或者说计划之中,但最后高估了自己的开发速度,结项就来不及了。

如果今年的夏令营有 hxd 想玩玩后端,我打算借此机会完善 tinyTikTok。(不过我的想法应该会是官方评分标准的超集,毕竟求其上者得其中

其实要是有机会,还挺想认识一下 Toktik-Team 这群人(nicognaW 慷慨地给了 tinyTikTok 一个 star,顺着摸过去的hhhh),从 commit 来记录看算是我梦中的团队了,当然,这些都是后话了哈哈哈哈

放在最后的话

其实,说不定此后就不再和 tinyTikTok 见面了,毕竟是计划之外的事,心底还是有些遗憾的,不过这就是人生嘛,计划永远赶不上变化。

学校里可以让你一个人 C 完几乎所有工作,有充足的时间给你容错,并且也能被兜底(见过无数烂项目),但如今也算是步入社会的人了,应该找准自己的定位,放弃这种不切实际的幻想,不过这趟也没白跑,留点遗憾,算是个教训吧。

tinyTikTok,有缘再见~