「时光不负,创作不停,本文正在参加2021年终总结征文大赛」
前言
2021已经步入倒计时,回想过去一年的点点滴滴,内心都十分感慨!有收获,有遗憾!
工作
参加工作有一年零2个月了,在2020年10月份左右开始参加工作到现在,从一名小白到现在熟练掌握vue和react(狗头保命),收获还是蛮大的,目前是在一家公司做教育系统,现在在双减政策下么,但是没有影响到我们,我们的教育网站主要方向不是在国内,主要是面向国外,然后这一年里,参与了系统的迭代,一个管理台pc(vue全家桶),一个用户端pc(react、antd、hooks、ts), 一个移动端(taro兼容h5和小程序),以及冲0到1 pc(用户端2.0 lerna、react、shared公用库、hooks、ts),肯定有人会好奇,怎么技术栈大部分是react,怎么蹦出一个vue项目,但其实我也不清楚,这只能问公司上一任的开发者了。然后工作是975,唯一感觉还行的就是双休了,基本加班可能是晚上,周末从来不加班,这使得我可以在工作和生活进行一个平衡,没错,你可以利用这些时间学习很多东西,毕竟工作的提升是有限的,只有不断通过自己的学习才能使自己的知识范围和深度进行一个挖掘
文章
在最近几个月有一直在输出文章,大概都是vue2.0和react 17的一些源码学习和总结,如下
- React源码解读(1)—— Fiber
- React源码解读(2)—— render阶段
- React源码解读(3)—— commit阶段
- React源码解读(4)—— hooks之useState,useReducer
- React源码解读(5)—— hooks之useState,useReducer
在后续也会继续更新,学习源码带来的好处还是蛮多的,最简单的就是api的使用,你可以减少一些bug的产生如hooks的闭包问题,为什么我明明更新了值,但是一直拿到旧的值呢?等等一系列问题,还有就是一些工具方法,我们在看源码的时候能够看到许多的工具函数,能够大程度的帮助我们写出更精炼的代码,如下
/**
* 安全调用一个函数,并返回调用结果
* @param fn 如果他是一个函数,将被调用
* @param args 供函数调用的参数数组
* @example
* ``` js
* invoke(options.callback)
* invoke(options.callback, ['foo'])
* ```
*/
export function invoke<T extends () => any | undefined>(
fn: T,
args?: Parameters<NonNullable<T>>
): InvokeResult<typeof fn>
export function invoke<T extends AnyFn | undefined>(fn: T, args: Parameters<NonNullable<T>>): InvokeResult<typeof fn>
export function invoke(fn, args?: any[]) {
if (typeof fn == 'function') {
return fn.apply(null, args)
}
}
type InvokeResult<T> = T extends NonNullable<T>
? T extends AnyFn
? ReturnType<T>
: T extends AnyFn | undefined
? ReturnType<NonNullable<T>> | undefined
: undefined
: undefined
在这一年的学习中对react和typescript的学习以及日常编码带来的学习影响是比较大的,在我刚开始写react的时候,我下意识f12打开开控制台一看,经常会遇到如下问题,卧槽,这个接口怎么重复请求了,在render上面console.log('渲染'),怎么特么打印了四五次,这些问题真的是令人费解,对初学者来说还是比较容易遇到的,这就迫使我们需要了解react为什么重复渲染,了解一些内部运行机制,当你在了解之后就会意识到重新渲染无非就是props,state,context等变化了导致重新渲染然,我们需要一步步去观察问题的原因所在,慢慢的,你就能写出合格的代码了,其次是对typescript的学习,在最开始的时候只会用type,interface定义类型,到现在能够熟练运用高级类型,高级类型可以参考我如下的文章
- TypeScript高级用法
,除了这些高级用法,更多的是和代码做一个抽象及使用,是代码例如有更好的类型推断,可读性,可维护性,那么这就是我们使用
typescript的目的,其实还有挺多的,例如hooks的封装, 公用库的编写,组件库的编写,在工作中都有遇到,这极大丰富了自己的知识技能,希望在不管在横向还是纵向都能过不断的去拓展。
生活
上个礼拜成功拿到驾照,在不拿到就要过期了,三年之约,我真的想不到我科三考了4次才过,考前猛如虎,考试怂如狗,前几天回去考科四看见以前那个安全员我还瑟瑟发抖,为什么呢,因为我挂的时候,他疯狂阴阳怪气,我真的是服了,不怕被人骂我,就怕别人告我心态,焯
经过长时间的久坐,我感觉我长胖了许多。。。我真的是服了,在毕业之前我以为我是一个不可能长胖的人,毕业真是一把杀猪刀
感情方面,程序员懂得都懂,这里就没什么好讲的
家庭还是一如既往,一周一个电话交流下生活和工作,打工仔的无奈,谁不想和家人呆在一块呢
掘金
掘金的活动我好多都没参加,更文也是佛系更文,这只能怪自己太懒了,也是自己的一个遗憾吧,关于这个年终总结,我就是想给自己留下些回忆,我觉得等到明年,以后在回来看这篇文章会是一个怎样的感受呢,哈哈哈,我感觉我还是挺期待的!
2022展望
想想2021就要过去了,心情更是五味杂陈,对未来也是比较憧憬,希望能做完以下的目标:
-
React不断学习及源码的学习 -
vue3学习以及源码,在这里强烈推荐vben这个vue3开源库,针不戳,我有时候上班摸鱼的时候翻出来看一下,希望有时间能写关于vue3的源码分析文章 -
看完红宝书,虽然平时周末也会看下红宝书,但是感觉看的太慢了,以后要多花时间去看,还有听说你不知道的js,听说不错,决定买回来看一下
-
node学习,学习koa等框架,以前倒是学过一点express的crud,但是感觉还是太浅了 -
前端工程化,比如
webpack的优化,以及手写一些脚本命令,拒绝当webpack配置工程师,还有一些项目架构的搭建,多包管理,组件库,最近项目中有去使用类似antd源码的组件封装,感觉还是很不错的,可以根据自己的项目搭建一些公用组件。 -
力扣希望明年能够刷满150道
时光不复! 希望在2022大家能一起加油!