写给学弟学妹的 Web 开发之路

236 阅读7分钟

哈哈,看到了几个朋友都写了年度总结,今天也来跟风一篇

Hallo,大家好。

我是KingYen.

又好久不见啦,上次写完单例和工厂模式一直想写 GMP 的但是一直因为一些其他的事情耽误了,后续也会尽快更新啦,大家期待一下吧。

今天呢,也算是从一个学长的角度做一次自我总结,顺便分享一下我的成长经历,希望能够给学弟学妹提供一些成长思路。

个人总结

今年上学期完成了对Thrift文件的解析,生成服务下接口详情与请求参数等,并在项目中浅浅的针对高IO场景做了一下并发优化,下学期的话重回 Java 赛道,和学弟一起打通了 Spring Cloud AlibabaDubboKitex体系。

那天我还和五花肉🥩在讲我微信头像的来历,我还记得那时候刚进大学,大二那一年的时候,比赛拿了大满贯,意气风发的患上了这个头像。其实回想自己的前几年,大一的时候扎扎实实学知识;大二上学期的时候算是最意气风发的时刻,当时真可谓是佛挡杀佛、神挡杀神了;大二下出去实训的时候,也低迷了很长一段时间,当时所有的比赛都没有拿到理想的成绩,蓝桥杯祭天、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

这个技术栈应该算是比较全的了吧,之前 VueElectron还有Flutter也都写过,但是现在也逐渐的在废弃了,感觉岁数大了,对新技术没有那么渴望了,看看可以,动手就🙂‍↔️

关于前端

React

说句实话React是写的比较久的了,之前也花费了不少时间去学习,源码说实话只看过几个hook的写法,说句实话React是比较难的,今天刚看朋友在吐槽,打开React的性能工具去 Debug 一下全球知名网站,绝大多数网站都会发生重绘,难确实难,但是没必要追求那么多,毕竟人家顶尖大厂都没有追求那么代码洁癖,我们又纠结什么呢?

Astro

Astro 是一个现代化的Web框架,旨在构建快速且以内容为中心的网站。在构建大多数营销网站、出版网站、文档网站、博客、个人作品集以及某些电子商务网站,Astro 的优势真的拉满了!

Astro 采用服务端渲染,与 Next.jsSvelteKitNuxt.jsRemix 等服务端渲染框架相似。Astro 构建的是多页应用程序(MPA),这也是 Astro 容易学习上手,并且原生支持 ReactSvelteVueSolid 等热门框架,并且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,对 MySQLRedis 进行优化,尝试将单体服务拆解,通过 RPC 进行调用,在后续那就是结合微服务框架进行服务治理啦。

Just soso

未来规划

  • GMP
  • Go 设计模式
  • Go 垃圾回收
  • 多级缓存设计

后面项目正式上线运营了,希望能抽出一部分对功能的优化或者剥离出来的平台来做开源,也希望能够给大家带来更多有益的文章与课程。马上也快要冲击暑期实习了,也希望自己能够收心一下专心准备暑期实习和春秋招啦。

也感谢喜羊羊、U神、灵佬一路的帮助还有我那个最最最不值钱的学长。对了,当然还要有五花肉🥩同学啦

毕竟我可是五花肉🥩头号黑粉