从 7 月入职 Zoom 到现在,已经有六个月的时间了。借着要给老大发年终总结的时间点,也好好整理一下这半年来的工作以及许多新的认识和感想。

# 工作回顾

# 重构

我参与开发第一个的项目内容,是使用前后端分离的方案重构一个模块首页。其中最大的困难是缺少以前相关的功能说明或需求文档,只能一边看老的代码逻辑一边去写新的代码。这给重构的任务以及之后的自测增加了许多困难。再加上模块的功能复杂,涉及到的权限非常多,前后的技术框架不同,挑战很大

幸运的是,重构和测试期间,同事给了我很多建议,帮我少踩了很多坑,最终重构的首页在十月份上线,没有出现 regression。

在重构完首页后,接着一个重点的 task(还是重构):进行分享弹窗的第二次重构任务。这个 feature 除了功能的重构,还改变了 UI 设计,许多情况都要确认过才能够进行开发,经过多次修改,最终新的分享弹窗也在十二月上线。

其实整个重构的过程困难重重,因为不了解每个功能背后的运行逻辑。常常一边盯着老的 jquery 代码逻辑,一边看前后端分离项目中的 Vue 的逻辑。那段时间经常早上八点半就到公司看代码,最后项目顺利上线,真的松了一口气。

# 新产品

在完成模块的前后端分离后,我被安排到新产品的开发。虽然兼顾了重构模块的日常迭代任务,但之后两个月的重心一直在新产品的开发中。在这一阶段中,我意识到了 英语口语技能 的重要。

由于我们一部分的开发人员在美国,所以我们日常的 stand up 都是用英文表达最近的工作内容。虽然上大学的时候过了英语六级,但正真要表达出来内容,一开始还是很吃力。好在 Zoom 的客户端是支持实时 Transcript 的,可以请求打开看到字幕。

就这样大约一个月的时间,经历每天站会的“训练”,基本就可以交流了。回想起来,我觉得可以刻意训练自己去表达,说错了也没关系,有进步就可以了。

# Zoom-ui

关于 zoom-ui,它 fork 自 element-ui,但是做了很多修改,最重要的是让组件支持 a11y,因为公司非常重视网页的可访问性。它主要是帮助视觉障碍者们可以使用 Tab 键代替鼠标配合读屏软件对页面种的各个控件进行切换访问。如果使用浏览器插件 Wave 查看网页,会发现 Zoom 的网页对视觉障碍者们非常友好。

zoom-ui 是由主要黄老板负责维护,不过其他前端也会提交代码或者 fix bug,每个组件的文档和单测都会分配给组员们维护。其中我也优化了一些功能。同时还负责了 Cascader、ColorPicker、InputNumber 等组件的单元测试编写和文档整理。

# 个人成长

# 单元测试的重要性

zoom 是很注重代码质量的公司,对于单元测试的重视程度很高。在这半年中,通过参与 zoom-ui 的迭代,我掌握了如何使用 JestVue-test-util 等工具去写组件的单元测试,懂得了单测应该仔细的将每个属性和方法都覆盖到,在专业技能上有一定的提升。

同时在项目中,核心代码要有单元测试,避免出现漏洞。

# 认真对待每行业务代码

业务代码其实并不简单,需要理清各种 case, 考虑清楚所有情况。因为 UEPM 并不能一开始考虑完全,所以在做业务时,如果是对已经存在的 feature 做改动,一定要参考代码,理解逻辑。一定不能一边写代码,一边考虑设计。发现问题,需要 UEcase 的,就直接找 UE。不理解的地方,尽量找到熟悉业务的人。做到 no regression, no outage

# 仔细 review 代码

组里的技术大牛很多,有问题时,他们也会很耐心地帮我答疑解惑,同事们也都很乐意探讨。

但印象最深刻的是,每次 merge 代码的时候他们都 review 的非常仔细,遇到需要优化的代码也会帮我指出来(例如当我使用递归遍历节点时,mentor 指出使用循环的性能会更好,大佬也帮我 review 出 bug 过),通过和他们的共事学到了不少东西。

# 学习计划

# 英语技能

来到 zoom 之后,发现英语技能变得很重要,不仅仅是阅读的能力,还包括口语能力。所以接下来的日子还要「坚持」提升英语技能,毕竟不是一口就能吃个胖子,英语一下子就能熟练掌握。

公司也提供了一些学习途径,目前我都在用流利说练习,感觉挺有效果的。

# 多多输出、记录

对于输出其实一直在做,大部分时候我是把它当作笔记来记,遇到有用的点(可以是组件或是知识点)都会记录下来。大部分的内容我认为都非常有用,在遇到重复的问题时直接翻以前的笔记就可以找到。

我的 mentor 就是一个很爱记录和分享的人,即便已经是一位厉害的架构师,也依然会从业务中沉淀出很多东西分享出来。虽然记录会占用一些时间,拉长整个学习过程,但是真的非常有助于记忆和回顾。2022年需要延续和加强这个习惯。

对了,我把所有的笔记记录在了我的 GitHub 上,里面已经有了不少的内容,关于 VueJSCss等内容,今年可能会记录很多 JS 相关的内容,可以提前 Mark 一下:

vue-demo-collection (opens new window) ❤️

# 深耕专业技能

不管怎么说,当下最重要的事情还是提升自己的专业水平,不论是具体的技术栈,还是对架构设计的理解,我觉得都有很多地方需要加强。

首先需要提升自己的代码质量,学会设计代码,可以多看优秀的代码,从中获得一些想法,再投入实践运用它。第二需要学会如何去 “简化” 代码,不仅仅是写完就结束了,应该去思考封装一些可以复用的工具提升效率,可以在下一个项目中使用,给自己定一个小目标,比如写一个 plugin,或是写一个 loader

还有一些感悟就是现在读的书太少了,深刻理解的东西太少了,写出来的代码自然就缺少了设计感。俗话说,“读书破万卷,下笔如有神”,先夯实好基础,我相信剩下的一定会简单许多。

# 最后

虽然只在 Zoom 半年,但它真的是一家非常棒的公司,前端也有许多大佬加持,来 Zoom 一定会有一个好的体验。对了,不仅仅是前端,今年我们也开放了很多其他的岗位,在杭州、合肥、苏州都有办公地点,且全员持股给自己打工(hh, 逃。

如果对 Zoom 感兴趣,有意向或者对岗位还有疑问的话可以直接联系我,我的微信号是 GSJ_97_,当然单纯的交个朋友也欢迎啦。

上次更新: 1/21/2022, 5:24:06 PM