从 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
的迭代,我掌握了如何使用 Jest
、Vue-test-util
等工具去写组件的单元测试,懂得了单测应该仔细的将每个属性和方法都覆盖到,在专业技能上有一定的提升。
同时在项目中,核心代码要有单元测试,避免出现漏洞。
# 认真对待每行业务代码
业务代码其实并不简单,需要理清各种 case
, 考虑清楚所有情况。因为 UE
和 PM
并不能一开始考虑完全,所以在做业务时,如果是对已经存在的 feature
做改动,一定要参考代码,理解逻辑。一定不能一边写代码,一边考虑设计。发现问题,需要 UE
补 case
的,就直接找 UE
。不理解的地方,尽量找到熟悉业务的人。做到 no regression, no outage
。
# 仔细 review 代码
组里的技术大牛很多,有问题时,他们也会很耐心地帮我答疑解惑,同事们也都很乐意探讨。
但印象最深刻的是,每次 merge
代码的时候他们都 review
的非常仔细,遇到需要优化的代码也会帮我指出来(例如当我使用递归遍历节点时,mentor 指出使用循环的性能会更好,大佬也帮我 review 出 bug 过),通过和他们的共事学到了不少东西。
# 学习计划
# 英语技能
来到 zoom 之后,发现英语技能变得很重要,不仅仅是阅读的能力,还包括口语能力。所以接下来的日子还要「坚持」提升英语技能,毕竟不是一口就能吃个胖子,英语一下子就能熟练掌握。
公司也提供了一些学习途径,目前我都在用流利说练习,感觉挺有效果的。
# 多多输出、记录
对于输出其实一直在做,大部分时候我是把它当作笔记来记,遇到有用的点(可以是组件或是知识点)都会记录下来。大部分的内容我认为都非常有用,在遇到重复的问题时直接翻以前的笔记就可以找到。
我的 mentor
就是一个很爱记录和分享的人,即便已经是一位厉害的架构师,也依然会从业务中沉淀出很多东西分享出来。虽然记录会占用一些时间,拉长整个学习过程,但是真的非常有助于记忆和回顾。2022年需要延续和加强这个习惯。
对了,我把所有的笔记记录在了我的 GitHub
上,里面已经有了不少的内容,关于 Vue
、JS
、Css
等内容,今年可能会记录很多 JS
相关的内容,可以提前 Mark
一下:
vue-demo-collection (opens new window) ❤️
# 深耕专业技能
不管怎么说,当下最重要的事情还是提升自己的专业水平,不论是具体的技术栈,还是对架构设计的理解,我觉得都有很多地方需要加强。
首先需要提升自己的代码质量,学会设计代码,可以多看优秀的代码,从中获得一些想法,再投入实践运用它。第二需要学会如何去 “简化”
代码,不仅仅是写完就结束了,应该去思考封装一些可以复用的工具提升效率,可以在下一个项目中使用,给自己定一个小目标,比如写一个 plugin
,或是写一个 loader
~
还有一些感悟就是现在读的书太少了,深刻理解的东西太少了,写出来的代码自然就缺少了设计感。俗话说,“读书破万卷,下笔如有神”,先夯实好基础,我相信剩下的一定会简单许多。
# 最后
虽然只在 Zoom 半年,但它真的是一家非常棒的公司,前端也有许多大佬加持,来 Zoom 一定会有一个好的体验。对了,不仅仅是前端,今年我们也开放了很多其他的岗位,在杭州、合肥、苏州都有办公地点,且全员持股给自己打工(hh, 逃。
如果对 Zoom 感兴趣,有意向或者对岗位还有疑问的话可以直接联系我,我的微信号是 GSJ_97_,当然单纯的交个朋友也欢迎啦。