狼叔的2023总结

这一年,左耳朵耗子走了,大家更要注意身体。

这一年,都是前端已死的论调,我偏偏不信,和很多人争论,就是为了给大家更多温暖。

这一年,降本增笑,我见识了太多,洒泪离开前团队。

这一年,AI听了太多,我却只是一个旁观者和使用者。

这一年,从杭州搬回北京,换了工作,比之前轻松了一些。

这一年,据说还成母校的优秀校友,我大学老师开玩笑说,我回学校会轰动,估计能让我笑醒。

这一年,又是折腾技术的1年,根植Node v20看AI带来的变化,确定了《狼书卷4》的定位和目录。

这一年,写了1篇文章、做了1条播客、做了1场演讲,做了1次出圈直播,做了一次大会出品人。算是少而丰富的一年吧。

唯一遗憾的就是想做一次Node.js 2023 Party,一直没有腾出时间来。希望明年尽快搞起来。

我对现在的技术没有特别大的期待,我对下一个十年更期待,希望能够尽早找到未来十年的方式。

我对自己依然没变。还是那个喜欢折腾的少年,再读《庄子》才知道连逍遥游以前都没有读完,该读养生主了。

我依然相信,少抱怨,多思考,未来更美好。2024加油。

从杭州到北京

0714,离开杭州,离开我待了2080天的福报厂。差3个月就六年了。从杭州回北京,原因有2个,换工作杭州其实没啥可选的,第二个原因是北京回家更方便,我有近30万公里的飞行里程,有点怕坐飞机了。0716到北京,0717入职,我可是真会无缝衔接,为了站好最后一班岗,我也是拼了。其实,不站也没事,但是有信任在,多干一点也无所谓吧。

下面,我简单分享一下我的一点思考。

1、为什么我要执念待够5年?

福报厂有一个说法叫"一年香,三年陈,五年醇"。待够五年,才算真正的福报厂人。作为一个成熟人的不一定会完全相信这话,这是企业文化里的一部分,也是过来人的所谓经验。

对我而言,我之前跳槽频繁,对技术成长是极好的。对于个人的成熟度、财富积累来说,跳槽频繁并不是一件好事。

首先,对我个人的成长是我在意的。很多人都知道我喜欢读《菜根谭》里面有一句话:"耳中常闻逆耳之言,心中常有拂心之事,才是进德修行之砥石。若言言悦耳,事事快心,便把此生埋在鸩毒中矣"。人有很多时候,要向着自己不那么舒服的地方走,才能成长。

举例来说,初进福报厂之时,和产品pk需求,经常是靠吼,以至于很累,但还有很多投诉,幸好能打能抗,不然早被开掉了。后面慢慢就懂了俯视问题,看轻重缓急,看合作链路,你能操作的空间就会更多,更加圆滑。我基本上克服了职场冲动的毛病,对于大厂里所谓的成熟度是有一定掌握的。

其次,对于一个公司体系和机制的理解是需要时间的。

福报厂固然有很多不好的地方,相信大家还是会承认它是一个成功的商业公司的。它的一些机制,文化,决策,多多少少都可以辩证的汲取的。理解了软件工程、敏捷、双十一大项目里的合作机制,理解各个层级的要求和做事方式,理解不同人合作的方式。真的是,人多余10万就一个小社会。理解的越深,你能做的事儿就越多,甚至,对于一些国家政策、立法规范都能够有更深的理解。

就技术而言,理解技术体系是不够的,更要看它的组织结构,以及某些虚拟组织的玩法。你会发现,人性在里面的影响,可能是阴谋,也可能是阳谋。比如统一而非唯一等思辨做法,都是很聪明的。

我是很感谢这段经历的。对我来说,它的重要性不言而喻,之前各种跳槽,然后创业,然后进福报厂,我感觉自己越来越分裂了,在工作上成熟度会更高,在生活中随性更多。既愿意在公司,喜欢人多的时候,也喜欢一个人逛博物馆,一整天不说一句话的时候。大概这就是成长,或者说变老了吧。

2、为什么要离开?

我是主动离开的,走的很纠结。没有大礼包,不舍得5年多,又不得不走,又有好归宿,是一个很复杂的心情。所以我才会说:"离开,说不上是主动还是被动"。我已经完成了自己的目标,再加上大背景愈发艰难,离开是冒着很大风险的,不走就得忍辱负重,毫无尊严。但是即使裁员再多,也不过三成,如果想狗一点,把自己放到不被裁的池子里还是很容易的。控制成本,少惹事,多做事,见机行事,卷更多无意义但必要的事儿,有一定能力,有一定判断力,其实完全可以避免被裁的。不过这样做意义不大,寻求改变很多时候是为了打破舒适区。为什么要把时间放在无意义的卷上哪?生命也不过3万天而已。

我经历了三波裁员

1、pm改制,即技术和管理岗分离,我没啥影响

2、一刀切,即3.5+以下一定比例,直接裁。我没赶上,提前半年我转岗了,我也是命好,当时我负责营销工具,以往每次大促都会折腾营销工具,作为调控大促dau的重要手段。结果618和双十一都没咋加班,我感觉不太对,就果断转岗了。果然,没多久就开始组织大调整,蒋凡离开了淘宝去了AE。

3、高p定人定岗,很多人没有坑,不得不走。我应该哭着庆幸没晋升,不然也是个麻烦事。带了一年裹配业务,团队都很好。可打绩效的时候太痛苦了,前端服务裹配业务,但前端属于横向技术,看着服务端的年终奖比前端多很多,很多同学都心里极不平衡。我要安抚大家,还要处理325的同学(一个被合作方恶心,另一个产出确实不及格),晋升没给团队名额,真的很糟心,恶心的事儿无法一一列举。

完美的躲过了三波,不知道是庆幸,还是侥幸,还是我的小聪明。降本增笑的大背景下,我会有很多不认同,这是我离开的最重要的原因。

1、专业分工vs全栈。我是做Node全栈的,我不反对的全栈。但我恶心为了搞人而全栈的做法。要裁员可以明着讲,理解但不认同。

2、一旦表面公平的原则被打破,剩下的就只能是一起pua,要么忍,要么滚。

3、动不动就开始填表,都是保密内容。

我有2个大老板,他们既要合作,又要互咬。夹在里面,那种难受的滋味真是太特么难受了。又要做事,又要不做事,大概是最纠结的时候吧。不过,我得感谢他们,在他们身上,我学会了很多,这是真心话,格局和做事方式、思维,真的是受益匪浅。

四月份之后,我就开始刷题了,我亲眼见不会写代码的p8们是如何焦虑的,我还好,把MDN所有内容都刷了,平时半开玩笑半复习的跟团队小伙伴们一起学,我们组月会是最有趣的,都是我自己准备礼物做游戏,比如大家一起答题,写出Array上方法最多的获胜。之后把leecode 75道题刷了,前前后后写了好多次,至少算法算是过关了的。

正好赶在最难受的时候,有好朋友推荐,就立马离职了。离职不久后,我的业务老板也离职了。后续的变化我就不知道了。

做一个离开的决定,依然是很难的。

你明明知道:"泽雉十步一啄,百步一饮,不蕲畜乎樊中。神虽王,不善也"。

你明明知道它是一个舒适区,有你的信任链,有你的技术追求,有的朋友们,有你的责任心,甚至是晋升执念。

能力不足就喜欢找存在感的人,以后就不会再出来恶心你了。

一旦离开,以后就是访客了,就要有人接了。

其实,离职了朋友还是朋友,小胖的家宴让我感觉非常温暖。没有舒适区,就再打造一个,面对未知真的走出来,你其实不需要害怕的。

放一个笑话:见2人在会议室聊技术,那一刻余晖撒在我的脸上,仿佛我灵魂出窍了。这特么聊的是啥?技术吗?好陌生。某前端8首席组件师对jQuery的评价。啥都是组件库,万事万物皆组件。这就是会议室里2人中的之一。

技术

今年折腾了很多技术,但都没写文章,所以输出的内容并不多。之前准备面试,外加Node v20升级,我的代码量还是不错的,比去年和前年都要好很多。知乎粉丝数突破了3.5万+,写了24篇回答,勉勉强强2万多字,知乎逢年过节也开始给我寄礼物了。(我知道他们是咋拿优秀答主的,我觉得堆字浪费时间,无意义)。

我不跟风AI,是因为我还没看清楚趋势,我不想做包皮的应用,但大势所趋,AI对全栈技能的影响,以及未来各个角色之间的协作关系改变,是我当下最关注的内容。

今年的重点如下。

  1. Node 20升级,是一个极其重要的,可以重学的里程碑版本,我认为变化足够,需要有新的内容和应用,尤其是AI背景下,未来应用范围会越来越广。

  2. 自己写Tomcat,纯粹为了玩,看到一个业界好的东西,比如trpc,aircode,httpc等,我以为在未来,我们不需要了解那么多HTTP细节就可以完成开发,于是才有了这个项目。

  3. 狼书卷四,以前没有好的想法,借着Node v20,终于有动力写了。

  4. 分享今年不多,和掘金合作较多,《2022大前端总结和2023就业分析》一篇文章就拿了优秀作者,我是希望给大家打个气,很多人都躺平,哀怨,叔还在奋斗,希望能温暖一些人。和天猪、死月做了一个播客《Vol .3 前端向未来:聊聊 Node.js 的现状和发展》,播客就是视频会议聊天,体验还行。《【掘力计划第26期】北京站·线下沙龙|Node.js实践和未来》也去分享了《AI时代给Node.js v20带来的一些机遇》,也和Boss直聘出圈,做了《求职时,该为 "35岁危机"提前担忧吗?》。分享占比不高,还凑合。有能讲的机会,尽量让小兄弟们去讲,我也更轻松一些。

  5. 今年大会出品人,只做了GIAC大前端专场,和云谦搭档很愉快。

除了上面这些,还见了JustJavac、小爝,圣司,Yorkie,死月,老雷,黄一君,小胡子哥,秦粤,堂主,Scott,Ace哥,以及GIAC、ArchSummit、掘金大会等大佬,对区块链,低码,AI,Rust等都有更深的认知。我自己用很多AI产品,比如Notion、Github Copilot、Sider,偶尔也x上关注一些新东西。整体上,看的更多一些,也算学习更多的一年。明年还是应该聚焦在产品上,看看要不要重启imove或做一些低码开源的事儿。在AI时代,手里没产品,你的ai接在哪里呢?大概是我今年最大的反思了。

1、Node.js v20升级

今年把Node.js v20的各种内容都升级了,参考github.com/npmstudy/no...。其实,狼书三卷出版之后,很长一段时间,我都觉得Node.js已经没啥可学的,每次更新,都有点挤牙膏的意思。各种过渡方案,真是懒得看。所以最近2年时间,我在Node.js领域关注,但投入的比较少。

直到Node.js v20的时候,我忽然意识到,离Node.js 8版本,已经整整过去了6年,离Node.js v10,已经整整过去了5年。当我再去对比的时候,无论特性,还是开发者体验,都远远优于Node.js v10。这时候我开始意识到,我需要重新梳理Node.js v20体系了。

对比如下。

  • 统一esm模块,cjs可以不要了。

  • 统一async函数,promise可以不要了。

  • 统一node:xxx,从v12就开始有了。

  • 内置test,集成周边,更方便。

集成最新的ci相关服务。

  • github action,不用travis-ci和circle-ci

  • codecov,变化不大

  • c8,小而美

生态

  • Prisma/ZenStack,超好用的ORM

  • Drizzle,超好用的面向SQL的半自动的ORM

  • React-admin,做crud的ui集成蛮好的

  • xv最小的基于esm的测试框架

  • Vitest,很爽的测试框架,包含了Jest所有功能,还有类型测试等,速度还快

  • 搞个基于pnpm和ts的Menorepo,折腾死了,用了下面这些所谓的最佳实践。

AI相关项目

上面这些是我折腾的内容,没偷懒,但也确实没有写出来。写的太浅了怕笑话,写的太深了,又不会有那么多内容。我的时间中断会比较厉害,对抗中断对我来说很困难。

我对Node.js 2023年的看法,放一个我在知乎上的回答吧。

先说结论:Node.js比之前13年发展的都好。ai时代技术会更下沉,全栈是基本技能,对Node.js来说更是利好,毕竟SDK大户:Java,Python,Node.js。


Node 20之前,异步很多方案,现在基本async函数,不兼容历史真的不需要promise

模块规范esm为主,古老的cjs昨日黄花。加上node:fs这样的用法很舒服,除了__dir啥的没了,只能desm这些凑合用

OO(面向对象)大局已到,以前都是残次品,ES6之后加强一波,TypeScript强一波,现在的框架仿佛不上ioc,装饰器都不好意思一样。我不这样看,Express,Koa,Fastify简单直接,而Nest,midway更多的吸收Java等经验同学。穷则独善其身,达则兼济天下。挺好

至于,性能,观测,扩展,http1.1,wasm,等等新特性这里就不一一讲解了。

我觉得Node愈来愈好了。

盗天猪一张图

他说:中国 NPM 镜像源站 npmmirror 单月下载已经破 90 亿了 [撇嘴] ,这一数字快超过 2019 年全年下载量了。

这只是cnpm,不算官方,不算各个公司自建源。说一声遍地开花,稳扎稳打不过分吧。尤其国外,Node做服务非常多,不像国内bff多。可能真正用Node的都忙着赚钱,没空分享吧。著名开发者mcolina又搞了他的创业项目promattic,全部Node,他是Fastify作者,可见国外对Node认可度极高。

2024年,我最重要的事儿是完成狼书卷四。以Node 20为主,兼顾ts web开发,以及prisma,drizzle,trpc等。目录已经写完了,希望能尽快完成。

我这一代的很多人都不做Node了,各种高p(苏千还在一线还帮我改过Koa问题,死马前语雀技术负责人,朴灵期待深入浅出2据说快了,秦粤极客时间serverless作者,七念,九十,天猪,张挺midway作者)有很多都是管理者,转前端,带业务,转ai(姜天意、小胡子哥、黄一君),我真心祝福这些从Node成长的朋友们。很多公司降本增笑,搞全栈,裁员,有一个淘宝前同事说,他们小公司因为他手里事情多,躲过了一波又一波。时代在变,多一门技能傍身总没错。

事实上,大前端波澜壮阔的十年过去了,Node也从爆红回归到正常,今天,用Node的工程师已经我们都不那么熟悉,但分布极广,我想这才是社区的好事。

我特别喜欢说:少抱怨,多思考,未来更美好。相信美好才能更好。与大家共勉。

这部分先简单写一点,稍后会有Node.js年度技术总结。感兴趣的朋友可以pianyishishu关注后续。

2、写了一个tomcat玩具

之所以写tomcat这个项目,原因很简单。

  1. trpc是一个近1、2年来很好的技术实践,我理解它比GraphQL更好落地。对前端和bff尤其友好。端到端类型安全,太诱人了。学习成本略高,GraphQL的一些核心概念有了,学习更简单一些,不然Query、Mutation、Subscription等,还是需要自己摸索的。

  2. httpc是隐藏http协议,既可以支持端到端调用,又隐藏了http细节,我认为这可能对AI时代技术下沉有帮助。

  3. aircode是王潇和月影做的一个Node.js FaaS平台,轻量级,简单使用,我认同这个方向,国内其实没有很好的这种服务,明显和国外差别非常大。有一点我不是很喜欢,一眼就能看出是基于Koa写的,相比httpc和trpc就显得糙了一点,不够优雅。

  4. 技痒,注册了这个npm包,一直没用。

1)关于trpc

理解trpc最好是先理解graphql。我之前曾经说过graphql是一个很棒的技术。

从前后端分离之后,从开始的mock json,后面开始搞bff,之后bff+mock,可是bff和mock如何联动的问题,依然解决不了。

结果Facebook在2015年开源了GraphQL,通过实体查询,定义一套dsl,可以解耦前后端,又可以联动。只需要掌握了query语言这套dsl,大家协作起来就非常顺畅。

GraphQL适合极客团队,不是所有团队。一旦有共识的方式,在国内通常都落地不好的。这就好比restful api一样,非常好的东西,但是加了以资源为核心来表达,这就增加了学习成本,以至于国内是叫好不叫座。

掌握了上面的背景之后,我们再来看trpc。

用法如下图。

左边是Server定义了greeting方法,右边是client,注入了Server的类型,直接通过greeting.query调用。是不是看起来还比较简单?

  1. 都是greeting方法,端到端调用

  2. Client里类型注入Server的类型,Server入参有zod校验,所以类型安全

  3. greeting.query这里的query指的是查询,其实还有Mutation写入(简单理解就是创建、更新这种),订阅模式等。此处如果你会Graphql,基本上一模一样。参考trpc.io/docs/concep...

挺爽的,有没有?再通过menorepo放到一起,一键发布,体验是非常友好的。

下面我们再看看trpc和bff、GraphQL的关系。

  • 用bff,就会出现mock和rpc等服务无法联动的问题。

  • 用GraphQL,就需要前后端使用同一套DSL。GraphQL的生态也不错的,编辑器越来越好了。

  • 无论bff还是GraphQL,在client关联,类型方面都是需要自己做的(GraphQL转ts很多公司或开源项目是有实现的,bff没规律,都是自己写)。

  • 大型项目用GraphQL很好的,比如github和hashnode都是用GraphQL做openapi的。需要啥,自取就好了

对比trpc

  • 需要自己调用rpc等服务,同bff,但解决client调用问题

  • 同样有Query、Mutation、Subscription,缺少了DSL部分,以代码的形式来完成。简单直观了,但没有GraphQL强大了。此处再AI桥接一下,那就真的完美了。

于是,我们发现trpc其实是介于bff和GraphQL之间的产物,优点都继承了,复杂度降低了,简单直观了,类型安全了,体验更好了。

至此,你就应该能够理解我,为啥如此重视trpc了。 在我看来,把trpc、ts、tailwindcss放到一起都不过分,都是Node全栈必知必会的技术了。

2)关于aircode

之所以关注aircode都是因为月影,另外它是Node.js服务,这二个原因我都得支持一下的。aircode的函数写法如下。

javascript 复制代码
const aircode = require('aircode');

module.exports = async function(params, context) {
  console.log('Received params:', params);
  return {
    message: 'Hi, AirCode.'
  };
}

看到ctx,大概率就会认为它可能会和Koa有关。其核心源码已经开源了,参见github.com/AirCodeLabs...。代码量也不大,确确实实就是Koa写的,只是将参数params放到了前面。

对db的操作封装进去,很丝滑。

其实,aircode对函数写法上封装的很简单,它的难点是编辑器,调试,发布这个链路,这才是这个服务里最有价值的地方。国内大环境,没有Vercel这样的服务,aircode算是让我们看到一些光亮,挺好的。

3)关于httpc

RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。

RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:

  • 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。

  • 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。

  • 通信框架:MINA 和 Netty。

目前流行的开源 RPC 框架还是比较多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等。

RPC常见的有是基于TCP协议的较多,在RPC之上,还要自己用Java Web包一层HTTP API,或者通过网关转发,然后通过通过一个client提供调用,阿里的MTop.js就是这样的。随着协议的演进,HTTP2也开始支持多路复用,Stream等,于是就有了grpc over http2这种,想想其实很容易理解的。

但不管怎么样,你都是在精细化分工的框架里做事,每个人都需要掌握各自的技能。

在降本增笑的背景下,低码,全栈,都复活了。技术本无好坏,被安了某些名目就感觉很怪。如果服务端和前端都放在一起写,确确实实也会发生这样的融合:像写一个函数一样简单,大家只要知道函数名和参数就好了。httpc做的就是这样的事儿。

好不容易被Restful API调教的大家开始标准化使用Verb和Query,结果一下子就回到解放前了。你不需要知道Verb是啥,也不需要知道Path,无论如何,Quick And Dirty,有的时候也挺香。

以图中的add方法为例子,它的实际请求地址如下。

bash 复制代码
http://127.0.0.1:3000/add?$p=[1,2]

转换一下

  • 函数名字就是path,即/add

  • 没有特别指定,verb就是get

  • 参数就query里的$p,它是个数组apply到add上的时候,x=1,y=1

原理就是这么简单。如果需要处理POST请求,可以在函数调用的时候,把Koa的ctx作为this打进去,这样就可以使用this.method,在转换请求的时候,也需要适当调整一下。

bash 复制代码
POST /update
Content-Type: application/json

[{"name": "new-name"}]

理解了这些原理,我就自己写了一个。Koa我熟悉,HTTP我熟悉,上面这几个框架我也摸清楚了,所以写起来还是比较简单的。

  • Koa中间件,100行以内搞定。

  • 采用插件机制又实现了一遍。

  • 采用mount子应用的方式又实现了一遍。

当你想在aircode里做POST请求,代码如下

csharp 复制代码
module.exports = async function(params, context) {
  return {
    method: context.method,
    paramsFromPost: params
  };
}

其实就是Koa的ctx透传了,没有做啥其他方法。

我的server写法,直接用this(此处的this就函数被apply的ctx)。

javascript 复制代码
rpc.fn('com.yourcompany.a', function (a: string) {
  if (this.method === 'post'){
    return return `${this.path} , ${a} `;
  }
});

然后在client里需要调整一下。

php 复制代码
import { createClient } from '@tomrpc/client';

const client = createClient({
  host: '127.0.0.1',
  port: 3000,
  namespace: 'com.yourcompany',
  methodFilter: function (lastKey: string) {
    if (lastKey === 'a') {
      return 'post';
    } else {
      return 'get';
    }
  },
});

const res = await client.a('hello');
console.dir(res);

从实现角度看,还算凑合吧,暂时还没想到更好的方式。

简单的分了一下层,其中createApp代码都是配置化,基本可用。

php 复制代码
import { join } from 'desm';
import { createApp } from '@tomrpc/app';

const rpc = createApp({
  name: 'tomapp',
  base: import.meta.url,
  port: 3001,
  debug: false,
  mount: './f',
  buildin: {
    serve: {
      enable: true, root: join(import.meta.url, '.', 'public'), opts: {}
    },
    cors: { enable: true },
    view: {
      enable: true,
      root: join(import.meta.url, '.', 'view'),
      opts: {
      map: {
        html: 'ejs',
      },
      },
    },
  },
});

rpc.fn('a', function (a) {
  return { a: a };
});

rpc.start();

这个项目是非常小的,可谓麻雀虽小五脏俱全,大部分框架开发的技巧都会用上。等有空了再详细写到教程里吧。

3、狼书卷4目录和定位

《狼书》系列已出版3卷:《狼书(卷1):更了不起的Node.js》《狼书(卷2):Node.js Web应用开发》《狼书(卷3):Node.js 高级技术》。这三本书已经出版了很久了,狼1是2019年出版的,狼3是2022年出版,目前印刷量应该是超过2万册了,我收到的反馈是有台湾的读者,不确定是不是出版了繁体版本。

上图是深圳宝安图书馆,在2023年七月份的图,很感谢这位朋友帮忙拍照。

作为图书作者是非常喜欢收到这样的总结邮件的。书写完了,就不是作者的了。它应该变成读者的,让读者收益,不然这出版做的就没有意义。

写书是很痛苦的事儿,前面写的时候痛苦,后面编辑校对也很痛苦。从2015年开始写,到出版完成,前后7年时间。在福报厂很忙,一心想着晋升,折腾各种技术,想踏踏实实写代码,学东西是不容易的。而且我觉得Node.js每个版本变动不大,前面cjs和esm各种兼容问题,es各种语法问题,后面引入ts,也是一堆问题,再加上各种Node.js新特性,我个人是觉得在Node 8之后的10个版本里,是比较混乱的。

我尝试过ssr,搞过前端智能化,搞过低码,其实我心里最喜欢的还是Node.js,每年招聘,前端委员会的活动,各种大会出品人,我都会去做一些事情的。招聘、新人、新项目,只要和Node.js有关我都会去尽量帮助。

直到Node.js v20发布,我才恍然发现,时间过去的真快呀,仿佛Node 8时代还在眼前。混乱期已过,各种特性也趋于稳定,再加上今年AI爆发,很多人都忙着基于ChatGPT快速落地,无论出于哪种目的,都会促进Python和Node.js的市场占有率。原因很简单,Python和Node.js都适合快速开发,且ChatGPT最早支持的就是Python和Node.js的SDK。所以第一篇就是《前言:Node.js全栈已经成为AI时代的基础设施》,大概看到这里,大家就已经知道狼4的定位了。

大致内容如下。

  • 从Node 8升级到Node v20+

  • 更新TS

  • 更新ORM:prisma + drizzle

  • 更新Web框架:nest和next

  • AI时代下的Node.js全栈

目前完成20%到30%左右,希望24年上半年完成。

4、分享:1篇文章、1次播客、1场演讲,1次出圈直播

简单总结2023年的分享:1篇文章、1条播客、1场演讲,1次出圈。

以下是简介内容。

  • 《2022大前端总结和2023就业分析》

  • 和天猪、死月做了一个播客《Vol .3 前端向未来:聊聊 Node.js 的现状和发展》 www.xiaoyuzhoufm.com/episode/656...

    • 第一次参与,体验还可以。都是很熟的老伙计,非常轻松
  • 【掘力计划第26期】北京站·线下沙龙|Node.js实践和未来juejin.cn/live/799533...

    • 《浅谈SSR和Worker》@梁伟文

    • 《用户体验数字化建设及提效》@任龙飞

    • 《AI时代给node.js v20带来的一些机遇》@狼叔

  • 求职时,该为 "35岁危机"提前担忧吗?juejin.cn/live/interv...

    • Boss直聘的崔磊我很喜欢:脑子好,嘴皮子利索,情商超高,运营工具玩的6,非常棒,专业。

    • 也算出个圈吧,见识了一下程序员外面的世界。

5、GIAC出品人

我是大前端专场,云谦是前端专场。他主要是各种前端框架相关技术,我这边就只能围绕前端进行选题,选题如下。

  • GPT X LowCode-GPT 提示工程与低代码开发实战@姜天意

  • 使用Rust开发v8引擎可视化分析工具@张宇昂

  • 深入浅出Node.js RPC@段潇涵

  • Pake - 利用 Rust 轻松构建轻量级桌面应用@汤威

我对这个选题还是比较满意的,分配合理,低码和GPT是躲不开的话题,Rust的我选了2个(热点),分析工具和桌面应用,不算主流,对打开思路应该还有一些不错的启发。至于Node.js RPC,常规操作,大前端必须要有Node.js,且RPC是BFF和纯后端的桥梁,也算是有一点难度的技术,又是必会的,又不一定前端会的那么多,所以选RPC具备一定的实用性和普世性。

姜天意是老牌名家了,在AI火了之后能够研究如此深的,前端领域AI理解是能够排在前面的,他从腾讯去了网易,祝福他。张宇昂是知名ssr框架作者,在微信工作,我之前带过他,非常值得信赖,技术能力非常强,同龄人中无出其右。段潇涵是字节基础架构组专门做Node.js基建的,他和天筑、死月一个组的,专业性非常高。汤威大概是阿里最年轻的p8了吧,年轻,聪明,极客范,也是我非常喜欢的。

Topic要靠谱,人也靠谱,Topic分部合理,新人老人都要有,大概是我选题的标准吧。

期待下一个十年

当前前端情况,我依然认为是幸存者偏差,有的被裁,有的找不到工作,有的跳槽,有的升职加薪,有的去做数字游民,有的做独立开发者,有的卖课,有的上窜下跳,真的是千姿百态。招聘收紧是真的,比如很多公司会卡本科学历,甚至某大厂北邮的都不要,只有三四十个学校的背景才要。和朋友开玩笑说,从大厂出来,现在绝大部分都进不去了。业务没有增长那么快,收紧招聘,只保留核心,在hc不变的情况下,水平高的换水平低的过冬,有加外包的,有减少外包的,有二三线城市建外包中心的,真的是啥样的都有。

我身边的人可能都还算不错的,会有焦虑的,有的被裁,但完全躺平的似乎也没有。压力大,主动离职,或者主动跳槽的也是很多的,也有朋友跳槽到小公司再也没法去其他大公司的。有的大厂招人还是非常多的,

无论哪种情况吧,大的软件开发行业没有大的影响,只是大家会更谨慎,谁也不知道明年经济会咋样。我听到的一个理论,一个行业的消亡时间和它从0到巅峰时间是一样的。COBOL多老了,很多银行等还是会用的。.net式微多年,依然还是有人用的。即使被吐槽的php,市场份额 77.2%,仍是网站的"首选编程语言"。

所以,大家不必恐慌,即使消亡也没那么快,更何况现在还不能下结论说就一定会消亡。我认为有可能会转移,这倒是真的。就好比开发工作量一样,即使有了低码,真正提效的不是前端,而是将前端工作量转到服务端、PD等而已。提效是有限的,更多的是转移。在AI背景下,我认为会带来很多变化和融合,甚至会影响一些软件工程里的角色。比如运维没了,后来有了sre、有了devops。

当我们不知道答案的时候,不放看看其他领域。举例在不同的时空里,总有不同的人在宣告诗歌的死亡。对此,巴勃罗·聂鲁达在《我坦言我曾历尽沧桑》中驳斥:"诗歌没有死,它像猫一样有九条命......它逃脱了所有这些谋害,把脸洗得干干净净,并且露出米粒一样灿烂的微笑。"

西川的回应更直接:"当人们说诗歌死了,实际上是说诗歌的古典定义死了,那么当代诗人有必要发展出一种新的你自己的诗歌。在这个意义上,就无所谓死还是不死,它需要被重新定义,这才是当代诗人应有的工作状态。"

在西川眼里,很多跺着脚嚷嚷诗歌"复兴"的人,压根不知道"它死的是哪个部分",也不知道"它厉害到哪种程度",甚至不知道"它有没有复兴的必要"。所以"复兴"这个词不太准确,"往前走"这个短语也不太准确,因为一直有中国诗人站在世界的前沿,只是很多读者缺乏了解。

迷茫的时候多读书,我是认同这句话的。

当然,我对当下的技术确实没有特别多的期待,AI背景下,vr和ar的扩展是可以想象的方向,比如苹果的MR我是很看好的,它给前端扩了一个z轴,算是我唯一有些期待的前端相关技术了。另外就是我在观望AI能否快速落地,形成新的协作方式。无论如何,那都是下一个十年的事儿了,我对此非常期待,也希望给自己探索更多可能。比如我在2023年年底接受了Moonbit开源社区顾问的邀请,MoonBit 是由 IDEA 研究院基础软件中心精心打造的国内首个工业级 编程语言及完整工具链。它由 Wasm 驱动,专为云计算和边缘计算设计的开发者平台,同时利用 AI 大模型赋能于传统编程工具链,以便更有效地辅助代码生成。它的定位很先进,负责人张宏波是rescript作者,也是ocaml编译器大佬,我认同Moonbit定位和探索方向,也信任宏波老师的专业水平,希望明年年中Moonbit开源顺利,我也能快速学习融入,并为Moonbit尽一点绵薄之力。

对了,在2023年12月份我做了16型人格(16personalities)测试,根据上面我的2023年总结,你们猜猜我是哪种?


补充3个招聘,大厂要求较高,本科起,最好有大厂背景,技术工底深厚。

1、字节跳动Cloud IDE方向招聘,前后端都要,2名,范围2-2到3-2都可以。

2、字节跳动CDN和边缘智能方向招聘,前端1名,范围2-2到3-1都可以。

3、蚂蚁集团招聘Node.js技术专家(p7),今天刚发的jd。确认是上海零一那边,非常靠谱的团队。

如果大家想看看以上机会,可以加我的vx:langshunode,我会拉群帮忙联系。

相关推荐
编程零零七2 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
北岛寒沫3 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
everyStudy3 小时前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript
(⊙o⊙)~哦4 小时前
JavaScript substring() 方法
前端
无心使然云中漫步4 小时前
GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions
前端·javascript
Bug缔造者5 小时前
Element-ui el-table 全局表格排序
前端·javascript·vue.js
xnian_5 小时前
解决ruoyi-vue-pro-master框架引入报错,启动报错问题
前端·javascript·vue.js
Karoku0666 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
麒麟而非淇淋6 小时前
AJAX 入门 day1
前端·javascript·ajax
2401_858120536 小时前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab