七月底入职满一年了,又刚好赶上年中,所以抽空写一下我的第一篇小结。
关于技术栈,我之前只用过原生和vue2框架+elementui。公司项目的技术栈是react+typescript,都是我没接触过的东西,所以赶紧去看官方文档,学了一些可以能应付基础功能的皮毛。typescript的官方文档是真的不好看,不过后来又发现了一个不错的ts教程:https://ts.yayujs.com/ 。
接下来就是要开始参与开发了。第一次读公司项目的代码时,立刻就懂了为什么大家都说在学校写的代码和在公司写的代码不是同一种东西。突然想起来面试的时候部门领导还管我要了一份我的项目代码,我觉得他绝对没有看,不然肯定会嫌弃地把我的名字从offer名单上划掉 ovo。今年也有回头看去年写的代码,当时有些不太明白的地方现在看起来已经一目了然了,这也算进步吧~。除了代码本身,我觉得另外一个很重要方面是设计。去年每次封装组件总是没有整体思考应该怎么设计,在什么场景下会用到,今后会有什么样的扩展,以至于最后虽然实现了应有的功能,但其实代码组织得乱七八糟,每次需要新增/修改功能,都感觉佛耶戈上身。现在再去封装组件就会把这些考虑进去了。
一些面试时看过的八股文也出现在了项目中。比如diff,我在学它的时候还在想,什么情况下会用到这种比较底层的知识呢。直到有一次遇到了一个和React key相关的bug:是一个简单的在table中显示数据的功能,碰巧有两行数据的rowKey相同了,导致这条数据一直出现在表格的第一行。只能说有些知识点会成为八股文是有道理的,是我肤浅了。
还有一个开心的事情是开始读源码了!看了antd的源码才感觉到我并没有很好地使用typescript的类型,尤其是去体验了一下github上一个类型挑战之后,真的觉得我之前都白用typescript了!另外,antd用了好多less的高级用法(可能不算高级,但我从来没有想到在自己的代码中用过),比如less函数、mixin等等。在后面的开发中,我也体验了一把mixin,减少了很多css重复代码,真的爽。还有其他的一些知识,比如cloneElement、useImpression,有很多自己封装组件时的疑问都在源码中找到答案了。希望今年下半年可以从源码中学到更多。
哦对了,还有一个要记录的事情,是我第一次向开源社区提了pr!虽然还没有被合并。
自己的问题也蛮多的,我觉得最大的问题是对业务不怎么理解,接到活就只想着代码怎么写,但其实有时候甚至都不知道这个功能是干啥的。不过已经在慢慢改了,业务的话,就厚着脸皮问吧。
写这篇总结之前,我去掘金看了一些别人写的总结,发现大家都看了好多书,业余时间也写了很多有意思的项目,感觉有被刺激到。立个flag!周末别老打游戏了,抽空去实现已经记录下来的想法。希望今年年底之前可以实现 where-is-my-something!
小结写成了碎碎念,随便吧。