「回顾2022,展望2023,我正在参与2022年终总结征文大赛活动」
缘起
21年底,那个时候公司开始裁员,搞的人心惶惶。虽然我算是没有被裁,但也借着那段动荡的时期看了看一些其他的机会,可能是由于年底的行情本就不太好,再加上我对八股文又比较排斥,所以最后还是不了了之
当时在尝试了一些工作机会后,我发现了几个问题:
-
面试的时候基本上都会问八股文,而我的八股文确实也没太花时间,但这并不是说我认为八股文没有必要,相反我觉得一些基础的内容非常必要,但是一些为了卷而难为人的内容就duck不必了
-
面试的时候会问一些业务模块实现,但这块内容其实不太容易表达清楚,不是说我的表达能力的问题,而是一些场景很难让没有参与过的人体会那些细节的考量
所以这就导致面试官其实无法很好的评估我的技术水平,而我也没办法很好的表现我的技术水平
这里并不是说我的技术是好或差,而是需要有一个评定的依据。问八股文,业务模块实现都是为了了解一个人的技术水平的手段
所以最直接的手段是什么呢?那就是代码,我认为代码会比其他的方式更有说服力一点,同时对这些代码进行一个思路的解说,也可以体现编码思想
于是我就决定将我这几年的一些技术心得做个梳理
开源
根据我这几年遇到的一些场景在GitHub上写了一个库 Concept
上面是一些杂七杂八的功能库,不算特别通用,毕竟通用的功能一般来说都已经有很多人实现过了,没有必要自己再实现一遍,还不一定比别的库实现的更好
另外这些功能库属于比工具类大但又比框架小,分开来又不方便管理,就都放在一起了
比如之前做微服务的时候发现WebSocket这种长链接需要手动做消息转发,于是我就实现一个库支持自动消息转发 【Spring Cloud】一个配置注解实现 WebSocket 集群方案
还有之前开发环境接口调试时,多人同时调试本地代码会导致负载均衡不到自己想要的服务,于是我就实现了一个库用于指定负载均衡的服务 【Spring Cloud】协同开发利器之动态路由
其他还有一些库我就不一一说明了,大家如果感兴趣也可以看看 Concept 或是我的其他文章
我写这些库的主要目的其实是方便我之后遇到类似功能时就可以直接使用,不需要再额外花费时间和精力去实现一遍之前实现过的功能,而节省下来的时间我可以用来开发其他业务功能或者是写一个另外的库来节省之后的开发时间(虽然说是因为面试促使我开始做这件事,但是现在面试已经不是首要目的了)
所以我在写这些库的时候就会考虑是不是支持常见的所有场景,如果不支持是不是方便进行自定义的扩展,我不会把一个功能写死,而是会设计一个接口同时提供一个默认实现,就比如上面提到的WebSocket这个库,支持Servlet也支持Reactive,消息转发可以自定义通过MQ或HTTP等实现
在实现这些库的过程中,也确实对代码设计有了更深的理解,如何理解抽象,如何进行抽象,不要被具体的实现所限制,比如WebSocket其实是长连接的一种具体实现,所以应该是基于长链接进行设计而不是基于WebSocket进行设计
在这一年的时间里,基本上已经把我想要实现的库都实现的差不多了,当然还有一些库正在努力中,如果发现BUG或是其他的一些功能也会一直进行维护
写作
最开始的时候我还为将文章发到哪个平台而犯愁,毕竟我是希望就找一个好用的平台发文章,反正我写这个的目的也不是为了有多少流量(当然能有流量肯定更好),最终我决定发在掘金,csdn和简书上
后两者其实主要是对百度的SEO做的还行,其他的方面DDDD
简单说说这些平台给我的感受吧
掘金
对新人友好,文章质量比较高,沸点摸鱼很快乐
CSDN
文章质量参差不齐,需要关注才能看全内容是什么骚操作?
简书
刚推出的时候很不错,当时用了一段时间,现在技术文没人看了
知乎
Markdown格式好像支持的不是很好?
公众号
没有去尝试,感觉一开始圈子小,用来赚广告费?现在进场感觉太晚了
b站
之前倒是想过要不要试着做个美食博主或是生活博主,哈哈
于是我就开始了我的掘金之旅(写到这里突然想到,掘金可以弄一个年度报表,我不记得去年有没有了,比如这一年里面写了几篇文章,发了几条沸点,获得了多少点赞,涨了多少粉丝,参加了多少活动,中了多少奖品,你最常看文章的大佬,最常看你文章的粉丝。。。)
目前阶段我的文章大多都是对于我实现的这些库的一个设计思路讲解和简单的使用说明,方便我在经过较长时间之后更容易回想起当时是如何设计的,同时还能锻炼一下自己的文笔,如果能给读者提供一些解决问题的方案或思路那就更好了
之后可能会更多的写一些其他的内容吧,比如开发过程中遇到的一些问题或是源码阅读之类的
签约
当时参加了签约作者的活动,但是根本没有去想能不能签约,毕竟比我厉害的大佬那么多,我又是今年才开始写文章,所以我当时对这件事没有抱任何希望
那天下班,和往常一样,顺手打开掘金看了一眼,然后就看到了系统消息里面的一条通知,说我成为了签约作者
说实话我第一遍看时还没意识到发生了什么,因为我当时已经完全忘了签约作者活动的事,觉得没戏就没再放心上
签约作者?什么签约作者
这条消息的意思是不是说我成为了签约作者,我对着这条信息一个字一个字的进行确认之后,我终于确定了我成为了签约作者
所以这件事情告诉我们,只要我们对生活没有期待,生活就处处是惊喜,开个玩笑
专栏
成为签约作者之后,需要写一个专栏,而且有文章数要求
当时我确实有几篇零散的文章素材,但是专栏应该是需要有连贯性,所以我得想一个其他的方向
最后决定基于我好几年的项目搭建经验来写一个专栏,其实这里我一直觉得叫做专栏太过专业,我的内容更像是专题分享
而项目搭建这块内容是我本来想过段时间做些准备再写的,现在相当于提前拿出来作为专栏来写了
我算了一下,我一共搭建过4,5次项目,除了业务开发,剩下的都是我的工作,包括微服务,网关,多租户,多数据源,权限等等,其他人只要开发业务功能就行,不需要考虑是哪个租户,服务间调用怎么传Token,多端登录挤下线,当前用户是否有该接口权限(当然这个专栏并不会写这么多的内容)
而且我们的项目并不是那种2C的服务,很多都是会部署在当地,甚至没有外网
数据量很小,却需要一台高配的服务器来部署一整套微服务(当时领导为了吹牛逼,我们为了学微服务,就全票通过用微服务来搭建了)
我只能说,真有钱啊
于是我就想,有没有一种解决方案,可以通过简单的步骤
- 选择是单体应用模式还是微服务模式
- 按需指定需要哪些功能模块
- 功能模块可以任意组合来适配不同的业务体量
大家如果有兴趣可以看看我的专栏哦 服务端模块化架构设计
未来
其实今年我还看了两本小说《傲慢与偏见》和《月亮与六便士》,正在读《被讨厌的勇气》嘿嘿
希望我自己还有各位,可以做自己喜欢的技术,写自己喜欢的文章,读自己喜欢的小说,吃自己喜欢的食物,爱自己喜欢的人,享受生活,享受生命
(我看他们的总结都配了好多图哎,但是找图截图好麻烦哦,还是算了吧,笑)