摊牌了!我要手写一个“Spring Boot”

开发 前端
我们经常会对自己早期写的代码感觉恶心,这是导致很多项目烂尾的很重要的一个原因之一。

[[344122]]

本文转载自微信公众号「JavaGuide」,作者Guide哥。转载本文请联系JavaGuide公众号。 

 01 重构 JavaGuide

我们经常会对自己早期写的代码感觉恶心,这是导致很多项目烂尾的很重要的一个原因之一。

写作也是一样,我也经常觉得自己早期写的文章像一坨翔。造成这个现象的原因很简单!我觉得主要可能有两方面原因:

  • 自己沉淀的知识更多,对于某个知识点的理解更加深刻。
  • 不同于其他类型文章,技术类文章本身就需要不断完善,文章内容才会更好。

所以,最近几个月我一直抽空对 JavaGuide 上早期的一些文章进行大篇幅重构,比如 Java 基础、Java 集合框架、 Zookeeper 、Redis 等等。

 

毕竟,时间有限,自己也还是把主要精力放在写代码上。所以,部分文章还没有开始重构,比如数据结构部分的内容。

就非常期待小伙伴们一起贡献出自己的力量啊!让 Guide哥 能多点时间写代码,嘿嘿!

 

02 写了个简单的 RPC 框架

我在大学的时候,就使用过 Dubbo 这类 RPC 框架,对于 RPC 框架的原理也有一点的认识。

于是乎!疫情那会,工作也不是很忙,我就想着说自己要不要也写一个 RPC 框架玩玩。

说做就做!前前后后花了 3 个月,我利用业余时间手写一个简单的 RPC 框架(玩具),名字叫做 guide-rpc-framework。这个框架是基于 Netty+Kyro+Zookeeper 并且整合了 Spring 来做的。

讲真!确实,花费了不少精力。虽然,这玩意的原理不难,但是,想写好确实要花时间。

目前的话,这个项目已经有 0.7k 的 star。感谢小伙伴们的支持!

 

像这样的开源项目,放到简历上绝对是加分项!

而且,我在自己去写 RPC 框架的时候,加深了自己对于 RPC 框架原理的认识。具体落实到代码实现的过程中,遇到了很多问题,解决问题的过程中也提高了自己的编程能力和解决问题的能力。总而言之,造轮子是一种特别能够提高自己系统编程能力的手段。

03 写一个简易版的“Spring Boot”是的!我准备开始造下一个轮子了,一个简易版的“Spring Boot”。名字我都起好了,叫做“jsoncat”。

 

名字没有特别含义,只是因为这个框架目前定位是只返回 json 类型数据给前端,所以就在名字中加上了 json。

其实,说是简易版的 Spring Boot ,不过是简单模仿 Spring Boot 提供的功能,自己手写一个类似的轻量级 HTTP 框架而已。(功能、生态、稳定性等方面肯定不能和 Spring Boot 对比啦!)

具体实现的话,先简单聊聊,后面会单独写文章来分享。我会使用 Netty 来写一个简易的 HTTP Server,主要用来处理 HTTP 请求。其他模块的话,我会在兼顾代码可读性的情况下,尽量减少第三方依赖。所以,整个框架会比较轻量。

另外,代码也会尽量写直白点,不故意秀技。我也会将自己写这个简易的 HTTP 框架学到的东西分享出来。当然啦!大家想要看源码的话,我也会将其开源。

写这个东西只是自己个人的兴趣爱好使然,主要也是为了提高自己的编码能力。推荐小伙伴们也要尽量能够将自己的想法付诸于行动。

理论固然重要,但是脱离于实践的理论并不可靠。

相比于 CRUD ,自己造个轮子,肯定是更有意思,也更能锻炼自己的编程能力和解决问题的能力。

目前的想法是,第 1 版至少是能够让其正确处理 Get 请求 和 Post 请求。目前的话,我基本已经写完了。相比于之前实现的 RPC 框架来说,这个总体来看,还是稍微简单一些。

 

 

用自己写的框架处理了一次Post请求

 

责任编辑:武晓燕 来源: JavaGuide
相关推荐

2024-02-04 09:19:00

Nacos动态化线程池

2021-09-26 07:37:33

前端技术编程

2013-08-14 10:23:22

创业个人创业互联网创业

2020-11-04 07:56:19

工具Linux 翻译

2020-09-15 11:40:37

Spring Boot代码Java

2012-04-17 09:55:29

云计算分布式

2020-11-13 07:08:51

Spring Boot应用Spring

2022-06-06 08:42:04

spring-boo开发接口防盗刷

2022-05-16 08:42:26

Pandasbug

2021-09-13 08:41:52

职场互联网自闭

2021-02-21 09:25:41

开源技术 工具

2022-03-09 09:43:01

工具类线程项目

2021-08-31 15:19:16

美团面试快排

2021-10-09 07:10:30

Github 开发资源库

2018-08-15 10:51:01

JavaSpring MVC框架

2022-05-31 08:35:05

RocketMQACK客户端

2021-09-28 13:42:55

Chrome Devwebsocket网络协议

2022-06-23 08:42:08

配置加密解密

2022-06-08 08:14:27

Dubbo数据包源代码

2020-11-02 08:19:18

RPC框架Java
点赞
收藏

51CTO技术栈公众号