这一年,左耳朵耗子走了,大家更要注意身体。
这一年,都是前端已死的论调,我偏偏不信,和很多人争论,就是为了给大家更多温暖。
这一年,降本增笑,我见识了太多,洒泪离开前团队。
这一年,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对全栈技能的影响,以及未来各个角色之间的协作关系改变,是我当下最关注的内容。
今年的重点如下。
-
Node 20升级,是一个极其重要的,可以重学的里程碑版本,我认为变化足够,需要有新的内容和应用,尤其是AI背景下,未来应用范围会越来越广。
-
自己写Tomcat,纯粹为了玩,看到一个业界好的东西,比如trpc,aircode,httpc等,我以为在未来,我们不需要了解那么多HTTP细节就可以完成开发,于是才有了这个项目。
-
狼书卷四,以前没有好的想法,借着Node v20,终于有动力写了。
-
分享今年不多,和掘金合作较多,《2022大前端总结和2023就业分析》一篇文章就拿了优秀作者,我是希望给大家打个气,很多人都躺平,哀怨,叔还在奋斗,希望能温暖一些人。和天猪、死月做了一个播客《Vol .3 前端向未来:聊聊 Node.js 的现状和发展》,播客就是视频会议聊天,体验还行。《【掘力计划第26期】北京站·线下沙龙|Node.js实践和未来》也去分享了《AI时代给Node.js v20带来的一些机遇》,也和Boss直聘出圈,做了《求职时,该为 "35岁危机"提前担忧吗?》。分享占比不高,还凑合。有能讲的机会,尽量让小兄弟们去讲,我也更轻松一些。
-
今年大会出品人,只做了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这个项目,原因很简单。
-
trpc是一个近1、2年来很好的技术实践,我理解它比GraphQL更好落地。对前端和bff尤其友好。端到端类型安全,太诱人了。学习成本略高,GraphQL的一些核心概念有了,学习更简单一些,不然Query、Mutation、Subscription等,还是需要自己摸索的。
-
httpc是隐藏http协议,既可以支持端到端调用,又隐藏了http细节,我认为这可能对AI时代技术下沉有帮助。
-
aircode是王潇和月影做的一个Node.js FaaS平台,轻量级,简单使用,我认同这个方向,国内其实没有很好的这种服务,明显和国外差别非常大。有一点我不是很喜欢,一眼就能看出是基于Koa写的,相比httpc和trpc就显得糙了一点,不够优雅。
-
技痒,注册了这个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调用。是不是看起来还比较简单?
-
都是greeting方法,端到端调用
-
Client里类型注入Server的类型,Server入参有zod校验,所以类型安全
-
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,我会拉群帮忙联系。