目前的话,已经把 Spring MVC 相关经常使用的注解好比@GetMapping
、@PostMapping
、@PathVariable
写完了。我也已经将项目开源出来了,地址: https://github.com/Snailclimb/jsoncat 。_原创开源不易,以为不错的话,欢迎给良心做者 1 个 star 鼓励一下!_
今天是晴天,我像往常同样坐在窗台,看着电脑“发呆”。毕竟是周末,就不分享技术干货了。前端
简单和小伙伴们聊聊本身最近正在作,已经开始作的事情。java
咱们常常会对本身早期写的代码感受恶心,这是致使不少项目烂尾、很差维护很重要的一个缘由之一。git
写做也是同样,我也常常以为本身早期写的文章像一坨翔。形成这个现象的缘由很简单!我以为主要可能有两方面缘由:程序员
因此,最近几个月我一直抽空对 JavaGuide 上早期的一些文章进行大篇幅重构,好比 Java基础、Java集合框架、 Zookeeper 、Redis等等。github
毕竟,时间有限,本身也仍是把主要精力放在写代码上。因此,部分文章尚未开始重构,好比数据结构部分的内容。面试
就很是期待小伙伴们一块儿贡献出本身的力量啊!让 Guide哥 能多点时间写代码,嘿嘿!spring
我在大学的时候,就使用过 Dubbo 这类 RPC 框架,对于 RPC 框架的原理也有一点的认识。编程
因而乎!疫情那会工做也不是很忙,我就想着说本身要不要也写一个 RPC 框架玩玩。json
说作就作!前先后后花了 3 个月,我利用业余时间手写一个简单的 RPC 框架(玩具),名字叫作 guide-rpc-framework。这个框架是基于 Netty+Kyro+Zookeeper 而且整合了 Spring 来作的。后端
讲真!确实,花费了很多精力。虽然,这玩意的原理不难,可是,想写好确实要花时间。
目前的话,这个项目已经有 0.7k 的 star。感谢小伙伴们的支持!
像这样的开源项目,放到简历上绝对是加分项!
并且,我在本身去写 RPC 框架的时候,加深了本身对于 RPC 框架原理的认识。具体落实到代码实现的过程当中,遇到了不少问题,解决问题的过程当中也提升了本身的编程能力和解决问题的能力。总而言之,造轮子是一种特别可以提升本身系统编程能力的手段。
是的!我准备开始造下一个轮子了,一个简易版的“Spring Boot”!名字我都起好了,叫作“jsoncat”。
名字没有特别含义,只是由于这个框架目前定位是只返回 json 类型数据给前端,因此就在名字中加上了 json。
其实,说是简易版的 Spring Boot ,不过是简单模仿 Spring Boot 提供的功能,本身手写一个相似的轻量级 HTTP 框架而已。(功能、生态、稳定性等方面确定不能和 Spring Boot 对比啦!)
具体实现的话,先简单聊聊,后面会单独写文章来分享。 我会使用 Netty 来写一个简易的 HTTP Server,主要用来处理 HTTP 请求。其余模块的话,我会在兼顾代码可读性的状况下,尽可能减小第三方依赖。因此,整个框架会比较轻量。
另外,代码也会尽可能写直白点,不故意秀技。我也会将本身写这个简易的HTTP框架学到的东西分享出来。固然啦!你们想要看源码的话,我也会将其开源。
写这个东西只是本身我的的兴趣爱好使然,主要也是为了提升本身的编码能力。推荐小伙伴们也要尽可能可以将本身的想法付诸于行动。
理论当然重要,可是脱离于实践的理论,并不可靠。
相比于 CRUD ,本身造个轮子,确定是更有意思,也更能锻炼本身的编程能力和解决问题的能力。
目前的想法是,第1版至少是可以让其正确处理 Get 请求 和 Post 请求。目前的话,我基本已经写完了。相比于以前实现的 RPC 框架来讲,这个整体来看,仍是稍微简单一些。
不过,大部分时间仍是在思考怎么让代码更健壮、更易读、更容易维护!
说句题外话,要想让代码更易读,除了要了解面向对象编程的思想以外,那必然少不了对设计模式的运用。
当大家看到这篇文章的时候,我已经出门和大学最好的朋友一块儿出去嗨皮了。
半年多没见,不知道朋友如今长胖了不?反正,我是长胖了。
我是 Guide 哥,一 Java 后端开发,会一点前端,自由的少年。咱们下期再见!微信搜“JavaGuide”回复“面试突击”领取我整理的 4 本原创PDF