回望我的前端之路,无愧 —— 2021年终总结

「时光不负,创作不停,本文正在参加2021年终总结征文大赛

过去

掐指一算,我出来工作快两年了。

我是来自一个三本学校的非计算机专业的2020届学生,本专业读的是电气工程。对于我的本专业,我谈不上喜欢,但也没落下,每年奖学金还是能争取到手。而在大学的专业课里,我能真正感兴趣的就是那几门编程课,C语言和PLC。我那时候就觉得软件比硬件好玩多了,当面对各种电路和电机,我脑子都转不过来了。

而真正让我接触到前端的,是我的毕业设计。大三的时候,我们就开始跟着老师做项目,当时我们小组选的题目是《宿舍用电管理系统》。这个选题做起来挺大的,从电能表采集,再到信息通讯,再到C端系统管理。

最初我们的方案是C端的系统找现成的去搭一个就行了,毕竟我们谁都没有这方面的基础。但后面我觉得说,反正时间很充裕,不如全部自己做了吧。年少无知且干劲十足的我们,就决定全部自己实现,而C端系统也分配给我负责实现。

当时我就去找了我一个读计算机的朋友,了解如何搭建一个网站。他先给我讲了一些基础知识,然后推荐了几套课程给我,从入门的HTML+CSS+JS,然后Vue的入门学习,再到Node的学习。从那天起,我连续一个多月泡在实验室,把这些课程听完,把里面的DEMO敲一遍,然后再找一些项目课程边听边敲。

这时,也就是2020年,我第一次推开了前端的大门。

那一年,我基本都泡在实验室里面,一边学习前端知识,一边实现项目的C端系统。当时我用的是Vue2+ElementUI+Echart+Express+MySQL,从实现用户注册登录,再到数据存储,再到图表实现,再到与上位机通讯。就这样一步一步的,实现了我的工作。

很庆幸,我们小组在2020年尾就基本完成了整个项目。那时候谁也没想到疫情的爆发,导致我们过完春节回不了学校。而那年春节,因为疫情的爆发,我不得不呆在家里,那时候我还没找到工作,所以也正因为有这么一段空闲期可以用来好好学习一下。

在那一个多月时间,我在腾讯课堂买了几个项目的课程,跟着敲了一遍;找了好多面试题和八股文,打印出来背;然后自己用Vue+Express+Mongodb搭了一个个人博客,刚好那年双十一买了一个云服务器,刚好用来玩玩。(其实当时的想法是希望面试的时候,自己能有个作品拿出来给面试官看看)

在家一直学习到了二月中旬,就开始投简历了。当时还是很担心自己找不到工作,一方面是自己非本专业出身,而且对这个行业没有一个衡量标准,不知道自己的水平到底去到哪里;其次是因为疫情原因,很多公司还没恢复招聘工作,况且我还是投实习岗位。

当时在几个招聘APP上,投了好多公司,然而基本都是没消息。那段时间自己挺焦虑的,但还是一直在学习和看面试题。直到有一天,有一个HR找我约面试,我心里挺激动的,但也挺慌张的。在面试之前,我赶紧去了解一下那家公司的情况,并且去看了看它们的官网和产品。它们是做海淘商场的,当时只有小程序平台,我就恶补了一下小程序的知识点。

面试一共两轮,一轮技术一轮HR。因为我投的实习岗位,所以技术方面没有问太多很深的东西,也没有让我手写题什么的,一切都很顺利。期间还问了我是不是会Uniapp,他们后续会使用其框架去开发新产品线。因为我之前买过一套Uniapp的项目课程,也跟着敲了一遍,我就在简历上写下的这个技术栈,当时的我,自以为真的会了。

一切很顺利,第二天我就收到了Offer,因为当时没有其他公司回复我,我就决定去这家工作,也跟HR确认好到岗日期。很巧的是收到Offer的第二天,我收到了第二家公司的面试邀请,但因为我前面许了一家,后面就没去面试了,毕竟当时的我对自己还是没那么自信。

在家再待几天后,我就前往广州,然后找我姐陪我去城中村租了一个小房子,并买了一些生活用品。到了约定好的日期,就公司报到。虽然公司规模不大,但是办公环境还挺好的,当时给我配套了一台iMac,然后我也就开始熟悉公司的项目。

就跟面试说的一样,当时的主要任务就是用Uniapp开发2.0产品。我的一个任务,就是实现商品详情页静态页面。而自以为会Uniapp的我,那一刻起才知道自己对自己误会有多深。我记得我当时还把那个课程项目copy到我公司的电脑,然后一边参考一边写。

中间过程就不多说了,那个页面我实现了一个多月时间。可能是公司比较宽松的制度,也可能因为我是实习,所以我上司在时间上没有对我抓的很紧,而且他每天都会给我review代码,告诉我里面一些代码问题。这一个月多的成长真的很大,我学会了flexgird布局,我学会了Vue生命周期和计算属性,我学会了一个页面可以抽离成多个组件出来……

而我更真切感受到我的成长的时候,就是后续我写毕业论文的时候。我回头看了半年前写的代码,真的yue了,完全无法直视。当然最后我们小组还是靠那大半年的努力,拿到了优秀毕业设计。

现在

不知不觉,我在这家公司呆了快两年了。而这两年的时间,我自己也成长了很多。

当时2.0产品做了三四个月,成功上线,我基本负责了80%的静态页面实现,已经后续的部分接口对接。而上线后,我们就发现了首页瀑布流很经常出现确实或者重叠的情况。当时我是选择了插件市场的一个瀑布流插件,里面的实现是根据绝对定位去实现的,很容易高度计算错了就导致缺失或者重叠。

当时我重新翻了很多其他瀑布流插件,但基本都是换汤不换药。后面我决定自己做一个,我参考了Web端瀑布流的实现,在页面中设置左右两个容器,然后不断通过计算容器的高度,放置下一个组件,这样子即使在获取高度时出现差错,也不会出现重叠情况,顶多就是放置错容器,而下一个就会补齐回来。

实现之后,我也上传到了插件市场,至今有两千多的下载量了。这是我造的第一个轮子。

Uniapp插件市场:ext.dcloud.net.cn/plugin?id=2…

Github:github.com/OUDUIDUI/un… (求Star~)

image.png

因为我们公司用了Google Analytics去做埋点,而对于GA的接入基本都是插入代码或者SDK接入,对于Uniapp还是很无力的。

后面在github看到有人使用了API上报方案,封装了微信小程序的GA插件。而为了兼容Uniapp,我参考了那个插件,用TS自己实现了这个插件,并使用到我们的产品中。

ga-tracker: github.com/OUDUIDUI/ga… (求Star~)

在工作之余,我也会找找课程学习。刚开始的话,就一直在腾讯课堂买一些项目课程,自己跟着敲一边。但后面发现这样子效率太低了,很容易敲过就忘记了,就像我之前学Uniapp一样。

后面我发现我自身的基础还是太薄弱了,就开始重新学习JavaScript,当时公司刚好有一个红宝书,我就借来学习学习。有时候上班任务不多的时候,也摸鱼学习学习。当时花了一个多月啃了一遍,有点跳着看,过了一边基础,也跟着敲了一下示例,确实收获了不少。

同时,我也慢慢养成了逛掘金的习惯。每天上班就先逛一下掘金,看看一些感兴趣的技术文章。今年年初的时候,看到有人在分享Vue的源码阅读,引起了我的兴趣。后来我就跟随脚步,开始了我阅读源码的道路。

阅读Vue2的源码一直断断续续的,差不多花费了我两三个月,我才看完了核心部分,并且也自己写了一个mini-vue2,也整理一份脑图

Github:github.com/OUDUIDUI/mi… (求Star~)

我建了一个mini的仓库,就用于手写一些mini版本框架。现在有实现了mini-webpackmini-vitemini-koa等,后续再回温一边,补一下脑图和笔记,不然过头就忘了。目前我在学习vue3的源码,也在手敲mini-vue3,进度呢,也就刚刚开始。

在学习源码这段时间呢,我也学习到了很多东西。一些语法的使用、一些打包工具的使用、一些骚操作的使用……最重要的时候,但你了解了一个框架背后的实现,你在使用框架的时候就会有很多细微改变。

举个例子,我在使用Vue2的时候,我基本都会把要用到变量都写在data里面;而在阅读源码后,知道data中的变量都需要一一去递归遍历进行响应式处理,而有时候一些变量根本就无需响应式,而当你把一些逻辑层面的变量也写在data中去,在一定程度上会浪费性能。因此在后续我都会把一些无需响应式的变量提取出来,作为一个普通变量放置外面。

同时,从去年开始逛掘金后,也慢慢会更一些技术文章。刚开始基本都是学习笔记然后拿过来发,后面的话就会开始自己去写。自己写过后,才知道写文章有多不容易,当你写的过程,你会发现好像自己不是真的会了,当你写到一些内容,发现自己都不敢肯定是这样,然后又得回头再去学习一下,实践一下。最后计划半天写完的文章,写了我好几天。

比如我今年有一篇文章《做一些动图,学习一下EventLoop》,当时我自己弄懂花了不少时间,写文章也花了不少时间。发出来几天后,得到了不少的点赞,内心虽然有点喜悦,但是有点担心,担心自己会不会讲错了,导致误导到别人。

在评论区有很多大佬也向我提出了一些错误和问题,我也花时间去验证了,如果是自己的错误的话,就马上去改文章内容。这文章我前前后后编辑了不低于十次。而恰巧是这个过程,也让我们不断的进步。

这几个月,我没怎么更文,因为一方面工作比较忙,其次是自己对文章内容要求比较高,不想为了写文而水文,因此就一段时间没写了。但后续还是会拾起写文的习惯,并且把它当做一个学习后的考试,检验自己是不是真的学会了。

除了写文的习惯,最近我也慢慢养成刷算法题的习惯。之前虽然刷过一阵子力扣,但是没一段时间就断了。前段时间,我自己在github新建一个仓库,写了个简单的cli,秉着TDD的思想,重拾刷题习惯。我觉得TDD这个习惯可以培养,对于每到算法题,自己先根据示例写个测试,然后再一一去实现和调试,就不会只是在力扣上面写那么索然无味了哈哈哈哈。

Github:github.com/OUDUIDUI/le…

如今才刷了四十多道题,基本一天一题(有时候偷懒就没写),慢慢培养成习惯。后续再系统学习一下算法,也会在仓库里补上笔记,也跟题目归归类。

未来

其实慢慢的,我发现我喜欢上编程这件事,从最开始的机缘巧合,到现在的本职工作,我觉得我一路走的算是顺畅。当然在这个行业里,我还是个新人,还需要不断的前行,不断的往高处爬。

给2022年立flags叭:

  • 巩固JavaScript基础。阅读《你不知道的JavaScript》、《忍者秘籍》,二刷红宝书
  • 在保证质量的前提下,保持技术文章的输出,争取2022年可以达到掘金Lv4
  • 希望2022年能够得以晋升(或者跳槽到更好的地方)
  • 保持运动,早睡早起,养成健康的生活习惯。

也希望各位朋友,2022年能过的开心,然后保持学习,最后赚大钱!

Guess you like

Origin juejin.im/post/7041125984929579039