哈哈,看到了几个朋友都写了年度总结,今天也来跟风一篇
Hallo,大家好。
我是KingYen.
又好久不见啦,上次写完单例和工厂模式一直想写 GMP 的但是一直因为一些其他的事情耽误了,后续也会尽快更新啦,大家期待一下吧。
今天呢,也算是从一个学长的角度做一次自我总结,顺便分享一下我的成长经历,希望能够给学弟学妹提供一些成长思路。
个人总结
今年上学期完成了对Thrift
文件的解析,生成服务下接口详情与请求参数等,并在项目中浅浅的针对高IO场景做了一下并发优化,下学期的话重回 Java 赛道,和学弟一起打通了 Spring Cloud Alibaba
、Dubbo
和Kitex
体系。
那天我还和五花肉🥩在讲我微信头像的来历,我还记得那时候刚进大学,大二那一年的时候,比赛拿了大满贯,意气风发的患上了这个头像。其实回想自己的前几年,大一的时候扎扎实实学知识;大二上学期的时候算是最意气风发的时刻,当时真可谓是佛挡杀佛、神挡杀神了;大二下出去实训的时候,也低迷了很长一段时间,当时所有的比赛都没有拿到理想的成绩,蓝桥杯祭天、ICPC西安站爆零、暑期求职一蹶不振,大三的话有点像是走到了最低点,不管怎么走都是在走上坡路了🙈,这个学期参加了一场人工智能的比赛,当时那段时间真的是爆肝,和学弟在没有指导老师的情况下,算是赛区里为数不多拿奖的山东高校了,也算是给学校交上了一份“还可以”的答卷吧。
然后把之前在中科院实习期间写的个人博客又重拾起来,买了个域名完成备案也部署上线了,还有一丢丢 bug 留下来慢慢改吧,欢迎大家来踩一踩 KingYen.的个人博客
个人技术栈
首先介绍一下我自己呀,我的技术栈算是比较广的,前后端、算法和嵌入式都算接触过,现在主要的技术栈主要有下面一些:
-
前端
React
Astro
Vite
/Next.js
TypeScript
TailwindCSS
shadcn/ui
Zustand
/Jotal
-
后端
Go
/Java
Spring Boot
/Hertz
Spring Cloud Alibaba
/Dubbo
/Kitex
/Kratos
MySQL
/Redis
/MongoDB
/ES
RocketMQ
/Kafka
Minio
Nacos
Skywalking
-
客户端
Rust
Tauri
这个技术栈应该算是比较全的了吧,之前 Vue
、Electron
还有Flutter
也都写过,但是现在也逐渐的在废弃了,感觉岁数大了,对新技术没有那么渴望了,看看可以,动手就🙂↔️
关于前端
React
说句实话React
是写的比较久的了,之前也花费了不少时间去学习,源码说实话只看过几个hook
的写法,说句实话React
是比较难的,今天刚看朋友在吐槽,打开React
的性能工具去 Debug 一下全球知名网站,绝大多数网站都会发生重绘,难确实难,但是没必要追求那么多,毕竟人家顶尖大厂都没有追求那么代码洁癖,我们又纠结什么呢?
Astro
Astro
是一个现代化的Web框架,旨在构建快速且以内容为中心的网站。在构建大多数营销网站、出版网站、文档网站、博客、个人作品集以及某些电子商务网站,Astro 的优势真的拉满了!
Astro
采用服务端渲染,与 Next.js
、SvelteKit
、Nuxt.js
、Remix
等服务端渲染框架相似。Astro
构建的是多页应用程序(MPA),这也是 Astro
容易学习上手,并且原生支持 React
、Svelte
、Vue
、Solid
等热门框架,并且ta
的文档真的非常非常走心,真心好评中文文档的贡献者,有着完整的教程逐步引导用户如何应用,因此学习 Astro
真的不需要太多对新技术的压力。
这真的是把知识点掰碎了问嘴里了,你跟我说你不吃的嘛??!
Vite / Next.js
-
Vite
说实话应该算是近几年前端最最最出名的新星了吧,真的一路猪突猛进好吧🤷,这个框架真的是前端必会必会必会 !!!- 你写 Vue ? 请你用 Vite 好吧 !
- 你写 React ? 请你用 Vite 好吧 !!
- 你写 Svelte ? 请你用 Vite 好吧 !!!
- 你写 前端 ?请你用 Vite 好吧 !!!
-
Next.js
是一个基于 React 的现代web框架,旨在优化应用性能、提高开发效率并简化部署流程。除此之外,还支持多种渲染模式,包括服务端渲染、静态生成等功能,从而提升页面的加载速度并优化SEO流程。Next.js
采用基于文件系统的路由机制,通过约定优于配置的方式使路由管理变得更加高效直观。
关于后端
语言选择
实话实说哈,其实我觉得不管是 Go
也好,Java
也好,需要学习的内容都大差不差,真的东西就那么多,用起来真的大同小异。不过总体来讲Java
的生态是远好于Go
的生态的,而且国内教程真的做的都很不错,鱼皮的教程真的很新颖,河北王校长的课程也最够深入与硬核,小傅哥的技术栈也很实用。相对比起 Go
来讲,真的就差很多了🙁
框架选择
整体来讲大差不差,选择成熟的体系来使用就好,所有的框架都是轮子,都是为了方便我们开发而来的,所以哪个用的顺手就用哪个就好,今年写项目也算是打通了多个异构体系,虽然踩了不少坑,但也还是挺有成就的。毕竟哪个大学的项目能用到两种语言三套技术体系呢🙂↔️
可以分享一下我们目前在用的注册中心用的Nacos
、权限校验用的Satoken
、横向网关采用Nginx+Spring Cloud Gateway
、纵向网管为higress
、RPC框架在 Java 侧使用了Dubbo
在 Go 侧使用了Kitex
,ORM 框架在 Java 侧用的Mybites-Flex
在 Go 侧使用的是Gorm-gen
目前还有不少功能需要完善,不过也算是能够跑通业务了吧,勉勉强强给自己和学弟点个赞(手动艾特YONG✌️)
学习路线
我作为一个Java的划水选手,就不给大家做推荐了,不过我的Java基础是看的廖雪峰,也跟着鱼皮写过项目,项目中非常多的技术栈来自小傅哥的推荐
关于Go的话就只有一个建议,go-nunu 真的成长的桥梁!!!
其实,总的来讲的话,就是先把单体架构玩好,试着整合 Redis
,对 MySQL
与 Redis
进行优化,尝试将单体服务拆解,通过 RPC
进行调用,在后续那就是结合微服务框架进行服务治理啦。
Just soso
未来规划
- GMP
- Go 设计模式
- Go 垃圾回收
- 多级缓存设计
后面项目正式上线运营了,希望能抽出一部分对功能的优化或者剥离出来的平台来做开源,也希望能够给大家带来更多有益的文章与课程。马上也快要冲击暑期实习了,也希望自己能够收心一下专心准备暑期实习和春秋招啦。
也感谢喜羊羊、U神、灵佬一路的帮助还有我那个最最最不值钱的学长。对了,当然还要有五花肉🥩同学啦
毕竟我可是五花肉🥩的头号黑粉!