轻狂侠客
开发大学

青训营与大项目总结(简)

by Marlene, 2023-03-10


缘起

因受到他人推荐得知字节跳动的青训营。原本开营的时间刚好是我开始放假的时间。但是由于疫情放开,我提前放假了。所以在青训营之前,我有一段时间在干别的。但是还没干完,青训营就来了。无奈,直接终止一个小额委托和延迟一个项目开发,优先进行青训营学习。

命运捉弄

青训营可以选择基础班和进阶班报名。我最先选择了一个都可以。后来我记得我改成了进阶班。但是,等截止后,我定睛一看,我变成了基础班。有点小崩溃。但还是接受事实。

组队

一进基础班,整个群都在拉人组队。于是,我打算抱个大腿,发了一个求组队的信息。但是杳无音讯。接着,我尝试性的发出了一条拉队友的消息。不出几秒,我很快收到了很多的QQ好友申请。我这种天天钻研代码的人,怎么好意思拒绝呢。不过,由于相洋同学的帮助,我找到了我们的队友。之后又把我们学校社团的几位同学拉了进来。至此,我们组队完成。我顺理成章地成为了队长。
我们队伍的队友,两位都是即将毕业找工作的学生。他们刚进队伍就跟我说,想拿个项目奖。那时候,我就知道,他们不会半路跑掉,尽心尽力更不必说。其余的成员都是大一大二的本科生。很大一部分和我都是同一个大学,同一个社团的成员。这种融洽且熟悉的关系,方便我了解各自开发能力,做之后的开发任务分配。大家一起从项目中共同进步,共同成长。项目的成果离不开每一位成员的努力。

前期筹划

由于我第一次参与青训营的开发,我并没有什么相关经验。恰好,我们队友有上一届的同学,可以提供一些建议。在他的建议下,我们在大项目开发之前,先进行了Git相关的测试工作,让未接触过的同学能够快速熟悉使用Git合作开发项目。当项目题目一出来,我们第二天就开始了第一次会议。第一次会议,我们确认了需要做哪个选题,以及相关的技术选型之类的。之后,我们每五天就进行一次例会,确保队友的开发协作和开发节奏。

删库重来

我们的选题原本要求使用NextJs,但是,我们大部分同学只有vue的相关经验,所以我们花了五天去学习React和NextJs。甚至,我们已经把仓库该有的框架都搭了起来。但是,中途她通知选题可以不限制框架了。于是,我们又决定使用Nuxt3开发。因此,我们不得不删库重来。这种事,真的不能再经历一遍了。

意外之喜

当时,我看到每日打卡里面有篇文章吹嘘MonoRepo,于是,我就往群里一扔,说了一句,”也许我们可以使用MonoRepo“。结果,我们的相洋同学真的去尝试使用MonoRepo架构整个仓库。经过不断踩坑与尝试,他成功驾驭了monorepo。通过这种方式,我们整合了前端和后端在同一个仓库,一起开发,极大节省了开发的步骤,加快了开发进程。

互相学习

我们每次例会,刚开始都会让每位同学分享一下这段时间他的开发经历。分享一下他的开发思路与技术。这不仅仅有助于方便全体成员熟悉开发的过程和进度,也有助于每位同学能从项目开发中学到更多。而不是因为项目的分配而导致自己与项目的整个割裂感。有助于整个项目成员的团结,大家因此能够共同进步。在每次例会,大家能够对项目提出一些自己的想法。部分想法能够对项目有所帮助。部分项目因为时间原因和精力原因,无法实现。

跨年之夜

时间来到春节之际,这段时间虽然是大家齐家欢乐的时间,但也是我们开发的黄金时间。我们的大部分前期开发工作都是在春节假期期间进行开发的。大家牺牲了自己的春节假期,即使除夕夜也在提交自己的commit。当然,这也让我们有了足够的时间去优化我们的项目,去精细我们的网站。这段时间可能是我连续开发的最多的几天。我的绿墙亮了一片,估摸下来有40天左右了。

Nuxt踩坑

我们刚开始接触Nuxt3,他不像Next的文档一样清晰明了。关于Nuxt3哪部分是服务端渲染,哪部分是客户端渲染,文档没有直接指明。导致我们刚开始开发遇到很多这种问题都不自知。直到遇到一个组件的时间闪烁问题,发现服务器时间与客户端时间不同,同时组件在服务端和客户端都渲染了一遍。这才揭开了Nuxt的SSR的神秘面纱。之后,通过仔细翻阅文档才搞清楚它的机制。

不眠之夜

随着春节过去,我也即将迎来开学考。在这段日子,我不得不忍受开学考复习,项目开发,之前的项目开发三重折磨。每日晚上能难受的睡不着,一直担心自己完蛋。但是,当时《狂飙》正火,我白天忍不住追剧。大部分时间我白天在图书馆复习,晚上写代码。之前的项目鸽着。日夜的折磨终于随着开学而结束。此时,开发也接近尾声。

紧急危机

当我们想要将网站部署到网站上时,我们发现他在网站上出现了重大问题,简而言之,就是网站渲染不出来。我们不断检查代码问题,不断尝试换服务器,换环境,换Node版本,换Nginx版本,均失败。我们神奇的发现,他居然能在火狐浏览器上正常显示。并且他在Netlify和Vercel上是没问题的。这让我们很困惑,甚至绝望。我们也尝试了很多办法,甚至请求了他人帮助。但是,最后均告以失败。之后,在一次偶然尝试,我们升级了Nuxt的版本,问题居然直接解决了!不得不说,Nuxt以后还是以后再用吧。

巅峰时刻

时间来到3月份。验收文档交上去,忽然有一天被字节老师夸赞不绝。当时还在毛概课如坐针毡,忽然间就兴奋不已。过了一个星期,开始答辩了。我没有怎么用心准备答辩,因为有了前面的认可,没什么需要担心的。但是,我说的是但是,我是第一个答辩的。为了确保答辩不拉跨,我特意请了一下午的假,希望毛概老师别介意。第一个答辩,我真的很紧张。话都说不清楚,呜呜~幸好到后面稳住了。令人意外的是,答辩评委对我们的作品给出了很高的评价。更令我们惊喜的是,结果一出,我们是第一名。而且是基础班大项目第一名。要知道,当初在组队的时候,很多人的简历都可以直呼不该来基础班。
sUCcX.png

图床裂开了,原图找不到了,五五~

不解之缘

同组的队友都非常给力。虽然水平能力有限,但是不会摆烂。我仍然记得他们加我时做出的承诺。虽然有些同学没有很好的能力,各方面都只是刚入门。但是,每次想到这些“要找实习了,想拿个奖”、“我一定不会摆烂”之类的微言转化为长达一月的艰苦,都因此动容。缘,妙不可言。希望大家都能遇见更好的未来。
sUlst.png

Marlene

作者: Marlene

2024 © Marlene & 少轻狂