平静而美好的2022上半年

1,332 阅读7分钟

「时光不负,创作不停,本文正在参加2022年中总结征文大赛

人生天地之间,若白驹过隙,忽然而已⏳。有人说生活像诗,喂马劈柴,🌊远方和大海,然而实际上生活不光是眼前的苟且,还有明天的琐碎。生活其实就额是这样,有美好,必然也有缺陷,有遗憾。不管怎么样,这就是生活,这就是人间。

image.png

对于平凡又普通的我来说,一切都是那么普通,朝九晚五,典型的上班族。总的来说,2022上半年完成了2件事,跳槽和学习。

跳槽

在前一家公司其实也不错,老板人很好,就是单休的政策加上不高的薪资,最终决定换一个环境。就这样,碍于人情做到了年底最后一天(😆其实是最后一天发优秀员工奖)。新工作其实在去年10月份就找好了,一直等着我去上班,过完年初八就直接到新单位报到了。其实后来也纠结过一段时间,因为薪资待遇其实差不多,就是单休变双休了而已,但是后来想想,新公司既然愿意等那四个月,那我也不能失了诚信。新公司是一家小公司,业务不多,主要还是在维护已有的几个老项目,用的技术栈也都是vue那一条线上的,什么小程序,uniapp之类的。

对于我来说,其实也是个学习的机会,因为在上一家公司,主要做的其实不是前端,而是物联盒子的安装维护,换环境的另一个原因就是想好好扎根在前端,专注于做一个事情,人的精力是有限的,尽可能的提高效率才是王道。

学习

这半年的学习也是一如既往,没有因为疫情而松懈,反倒是利用居家办公的机会,有更多的时间,沉浸在自己想要的代码海洋中。对于大佬而言,我现在学的都是一些基础内容,按照读书三个层次,只是到了第一个层次——昨夜西风凋碧树,独上高楼,望尽天涯路。没有太多的项目要求,只是自己内在动力在驱动着多学一点,这种感觉就是独上高楼的感觉。

具体的学习收获,我想分为两个方面,一个是前端框架的能力,另一个是后端nodejs的能力。

服务端(SSR)渲染,我也学会了

早就有所耳闻,这一次终于有机会接触了,公司需要部署一个门户网站,我自荐nuxt,除了nuxt本身适合之外,也有一部分私心,通过这个小项目正好练练手。nuxt的文档个人认为对初学者不是很友好,不如看看杨村长的nuxt入门课,可能效果会更好。不得不说,对于流量不大的公司门户网站来说,这样的框架真是很适合,有几个特点:

  • 快,首屏渲染速度非常快,基本在1s左右。
  • 良好的SEO能力,分数基本在优秀边缘
  • 约定路由,所见即所由

在学习nuxt过程中,有一点是个人认为是比较有特色的,就是serverMiddleware,注意,这是服务端中间件,不是普通的中间件。由于nuxt非静态部署是需要启动一个node进程的,这样的话,这个服务端中间件也同时启动,换句话说,这个中间件里面其实可以承载任意的nodejs进程。正因为这样,我在这个项目中启动了一个后端接口代理,往往按照以前SPA框架,就需要另外使用nginx之类的进行端口转发,而这里,nuxt就直接搞定了。另外一个好处就是,完全可以把后端接口放到中间件中来,这样,甚至可以与前端一起调用同一个工具函数,这种能力个人觉得非常有意义,特别适合小型项目开发。

样式库的另一种选择

对于一般项目而言,可能选择一个框架之后,比如ant design、element、naive UI、 wave UI之类,配套的组件库已经够完善,这对于开发一些企业中后台管理之类的项目非常实用。但是像那些定制程度极高的,UI交互比较复杂的,还是需要手写css,不管是less还是sass还是stylus,其实本省并没有少些css,只能说稍微提高了一下效率,但是还是存在css和html高度耦合的问题。只有原子化的那种设计,个人认为才能真正将css和html分解开,这里的分开是指同一个class可以用在不同的html上,完全没有干涉。

使用tailwind,这是偶然间的尝试,看到有掘友分享,抱着试一试的态度去用,第一次感觉css写起来这么方便,原本两个单词,现在只需要一个单词,原本需要在html和css段落之间反复跳来跳去,现在所见及所得,这本身就是一种简化,并且最终还有冗余的处理,好像css也可以变得很智能了。甚至在官方之外,自己公司可以进行自定义的拓展,相互之间的这种松耦合关系原子化的粒度特别适合变动频繁的项目和验证性的项目。

海上生明月,天涯若比邻

在线沟通大大拓展了沟通的范围,不限时间,不限地域,虽然现在市场长各类音视频实时通信能满足日常生活,但是还不能直接用在公司项目中。因此,公司也特别需要这方面的能力。为了保险起见,也省去了维护的烦恼,沟通能力用的是第三方某个大厂的产品。

万事开头难,在拿到API接口之后,却感觉无从下手,页面不知道该如何写起,最后一点一点的从官方的demo源码中去解读出来,把业务逻辑理出来,才最终实现了该有的功能。就拿这个语音或者视频电话和拨号的功能来说,最重要的就是把逻辑理清楚,我大概理了一下。

在线音视频总共四种状态,拨号状态,接听状态,通话状态,以及三种状态都不是的待机状态。当主叫方发起音视频消息时,主叫方进入拨号状态,同时,被叫方收到邀请消息,随机进入接听状态,这时可以配合响铃、震动等方式进行提醒,第二个阶段,被叫方接受邀请,则双方进入通话状态,若拒绝邀请,则发送拒绝消息,双方各自处于待机状态,以上这些状态均由状态管理器统一管理。第三个阶段,就是任意一方挂断,就发送挂断消息,计算一下通话时长。

服务端能力的提升

这一块主要是围绕nodejs展开,因为本身也很少使用其它语言,当然也不会,nodejs的一个好处就是,前后端大部分思想方法都通用。关于nodejs在服务端的能力,我也主要在围绕音视频这一块在探索,写了几篇nodejs解析视频文件的文章。有兴趣的可以看看。

结语

上半年已然远去,来日犹可待,往事不可追,像我一样在三四线城市中生活的打工仔,生活本就平凡,本来也没有多少波澜。对于我来说,在平凡的生活中去享受当下,不断充电提高,这一个过程本身就是充实而美好的。祝愿所有认真对待生活的朋友,认真过好每一天,生活不会亏待你。

下半年继续努力。