今天在我的 HarmonyOS 开发 讨论群里,一个群友说自己正在搞下拉动画
然后我一想,哎哟,不错哦,这个群友还有点厉害!毕竟在我们前端里,能把这个逻辑写出来的人比较少,我心想这个群友必定有点东西。然后就有了如下的对话。
他的回复让我发现这个人果然有点东西,他居然在悄悄咪咪的手写常用基础组件库。
我一声感叹之后,他回我说:
这个不是很简单吗?
所以,各位读者老爷们,你觉得一个手写下拉刷新组件的实现简单吗?
当然我知道他说的这是自谦,不过巧的是,我最近还遇到另外一个事情
前一段时间,一个约十年工作经验的大佬找我帮他修改简历,在细聊的过程中我们聊到一个项目
他能够基于 skia 封装一套元素组件,并且实现类似于蓝湖那样的项目。我一看,也觉得这个项目还不错啊。因为这种项目,由于性能的需求,都需要脱离常规的 DOM 操作,基于 canvas 或者 webGL/webGPU 重新封装元素组件,然后才能实现具体的项目需求,大多数,我说的是大多数的前端开发没有机会,也没有能力接触到这样的项目
所以我就跟他说:这个项目挺强的啊,你可以在简历里着重介绍一下这个项目。
结果他的回答让我很熟悉:我觉得这个项目没啥可说的呀,感觉比较简单
巧的事情还有,我上上周周六在 B 站直播间分享了在小程序里如何运用 lottie,并分享了如果要封装成一个简单易用的 React 组件,有哪些基础知识,封装思路是什么,遇到哪些坑
结合 7 个踩坑点经历分享相关基础知识的实践运用和思考
1. useEffect
2. useImperativeHandle
3. forwardRef
4. useLoad/useReady
5. useRef
6. 引用数据类型
7. this
8. React render 机制
9. ts 应用
...
<Lottie path={path} />
我吭哧吭哧的讲了一个多小时,然后分享完了之后,有个人私信跟我说,今天分享的这个东西太简单了,问我能不能下次分享一些有价值的东西
然后我回想我自己的折腾过程,前后花了两个晚上,大概八个小时才把中间的坑踩完,真的很简单吗?
所以我就试探性的问了他一句,你以前在小程序运用过 lottie 吗?
他说没有
然后我就说,要不这样,你反正也觉得挺简单的,而且解决方案和最终的效果我直播都分享过了,要不你自己去试试,如果简单的话,估计也就半个小时就能搞定
他说好
然后到目前为止,时间已经过去两周多了,他还没有告诉我他已经搞出来了。中间我们沟通过一次,沟通的内容是他在 JSON 文件的引入上遇到了一个坑,不知道咋解决
上周我在 B 站直播间分享 React 性能优化专题,当我分享完实践案例后,我说我们可以把这个案例的优化经验好好总结一下,当成面试亮点去分享
React 性能优化 |
---|
Fiber 架构 |
收集 |
优先级队列 |
DIFF 算法 |
双缓存策略 |
useCallback |
useMemo |
React.memo |
实践中普通开发应该怎么做 |
实践中架构师应该怎么考虑 |
进阶性能瓶颈案例一:低代码中的性能问题 |
进阶性能瓶颈案例二:列表渲染时间过长 |
然后就有朋友在弹幕里说:这个东西太简单了,咋可能当成亮点来说
那会儿我在直播的时候看到这条弹幕其实有点难受,我在讲这个案例之前,前面花了一个多小时的时间在铺垫基础理论,最后才来说实践里应该怎么做,当这个哥们听懂了之后,给我来了一句:太简单了...
仔细想想,React 性能优化这个课题,多少人,多少优秀的团队在使用上存在误解啊,他可不是那么容易精准掌握的,滥用 useCallback 的团队何其多?我能把这里面比较复杂的逻辑和关系给他讲清楚,算是对我表达能力的一种高度肯定,但是呢,我当时的第一反应确实就是难受和生气
我就在直播间反问他:如果你不来听我直播,你知道这个怎么优化吗?
后来他没再发过弹幕
我给很多面试官做过培训,面试过大量的开发者,给大量的开发者做过面试辅导,简历修改,模拟面试
实际上,觉得自己已经掌握的知识很简单,是程序员的一个常态。
你可能会经常遇到这种程序员:
他不知道自己简历的亮点难点应该怎么写,他觉得自己做过的项目里没什么东西可说
因为,都很简单...
虽然有的人平时工作的时候大量加班,工作内容特别多,但是一到面试要让他说点什么自己会的东西,或者说点项目里的东西,说不出来,
因为,都很简单... 不值一提
所以简历里的一个通病就是,很多人分不清自己掌握的知识哪些权重比较高,哪些权重比较低,反而在简历里反复出现自己会 antd
,会 echarts
,会 elment UI
...,个人技能里要写它们,项目技术选型还要写他们...
oh,我的天
前几天在我的成都群里,有个哥们问我,面试官问
antd
应该问些什么? 我说:如果候选人只是说,自己会用,我都懒得问,如果他说自己能手写一套 antd 组件,那我想问的东西可就多了...
所以,有的人会反向把那些真正的简单的知识,比如前端面试要求达到的算法水平,当成什么高深莫测的东西...
觉得自己进不去大厂团队是算法阻碍了他...
然而事实上,哪怕是大厂前端所要求的算法水平,也只是停留在一个比较初级的程度,他不涉及到瓶颈问题,大概你只认认真真刷够 300 个题就满足条件了
所以一个很有趣的现象就是,你彻底掌握的东西,你自然会觉得简单。但是面试中,你只能说你掌握的知识呀,还能说出点什么你没掌握的东西不成?
大多数的前端开发都忘记了自己掌握一个知识点的时候有多不容易,最终把这些掌握的知识归纳到:简单
从而在面试中表现平平...
这就是,知识诅咒
因此我在带学生的过程中,为了避免这样的情况出现,会在他们掌握这个知识之前,做一个非常重要的事情,那就是想办法让他们记住此时此刻的感受,记住那种无所适从,没有方向,不知如何下笔的感受,这是打破知识诅咒的重要手段