时隔一年的更新

时隔一年的更新

去年入职大华之后就一直偷懒没有更新了。

马上到 2021 年了,觉得自己有必要对过去做一个总结。想到哪就写到哪里吧

关于前端

面试的时候,总是被问到自己怎么理解前端,有什么规划

花了四年时间我应该是还没有搞清楚这个问题

什么都不会的时候,想着学会 xxx 框架,理解 xxx 的源码,自己就会离真相再进一步

于是开始看 vue, 看 react , 开始用 ts ,开始玄学配 webpack ,用 nodeJs ,开始刷算法题。

然后又渐渐喜欢简单 , ts 写着太麻烦,弃了 ; 配什么 webpack,umi 不香吗 ;imgcook 自动生成代码不快么;写个脚本然后 egg 无脑 curd 不好吗。

可能这就是大部分小厂前端的处境吧 ,并没有什么值得一提的项目亮点,在写业务与学习新知识中周而复始,又时不时被大佬开发出来的工具惊艳,npm i , npm start 之后发出真香的感叹。

关于组件

参与大华组件库的建设让我获得了一些宝贵的经验。我觉得难点大部分不在于怎么把业务功能实现出来,而是怎么让组件在后面的修改与扩展中可维护。

举个一个用鼠标滑动设定多个时间段组件的例子。

本来的需求是 3 _ 个的时间段,后面加了 1 _ 个时间段的需求。还好时间段的逻辑是抽出来的,所以实现没用太久。

本来需求是时间段区间 00:00:00 - 24:00:00 ,后来又加了 23:59:59 的需求 。只好增加一个配置,又修改了时间标尺的显示。

本来是一个按钮用来弹窗复制时间段,后面陆续加了好几个不同功能的按钮。这就麻烦了,本身为了计算方便设置的定宽组件,只好改成自适应,影响到了很多地方的计算。

后来又出现了加锁 ,主题可定制,按日修改 变成 按月 ….的各种需求

总结起来有几点

做好解藕,不要和数据产生耦合,拆分成的各个组件之间也减少依赖。否则需求稍微一变更就需要在几千行的组件代码中埋头改。

不要相信一开始提需求的人 “用在这个页面就好”,要考虑组件作为子组件,作为小屏幕,作为弹窗内容的情况。

利用好 React 中的高阶组件,有利于简化组件代码。

做好单元测试。

关于数据结构 / 算法

一年前跟大部分前端一样,想着算法根本不可能用在项目中,写了没什么用处。

今年由于想去苏州微软。开始刷 lc 题目。

在自己刷了一百多题之后,改变了这个看法。

首先就是多了一种思维方式,举个例子,如果我写了三层的循环,我会去考虑要不要优化时间复杂度,或者要不要剪枝,遇到一些后端传过来的很难用的数据,会去考虑有没有什么数据结构比如字典树,图类去优化。

对于面试,小厂很难有值得一提的亮点可以说出来,而由于消息的闭塞,自己千辛万苦做出来的东西,可能是人家早就实现出来的轮子,考虑的还比我更好。而八股文背的再好,也只是不扣分而已。但是做题,至少能为我提供一个能跟大厂出来的同学一战的机会。

这些如果不去尝试,一味听别人说前端用不到算法,是不能体会到的。

未来计划

继续佛系写算法题,后面会更新到文章里。

最近被 imgcook 惊艳到 ,在工作使用之余,想看看相关的 AI 识别的知识。