被喷了!聊聊我开源的RPC框架那些事

前段时间利用业余时间写了一个简单的 RPC 框架,花费了很多精力。开源出来以后,少部分不太友好的技术人站在上帝视角说了风凉话。就很难受,兄弟,谁尚未一个玻璃心。git

简单吐槽一波,给你们聊聊关于 guide-rpc-framework 的一些事情。github

我踏马直接踢

01 个人自定义 RPC 框架近况

关注个人大部分小伙伴应该都知道,3个月前,我利用业余时间手写一个简单的 RPC 框架(玩具),名字叫作 guide-rpc-framework。面试

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

写这个 RPC 框架的主要目的是为了我的学习,开源出来的目的主要是想帮助到更多人。微信

02 开源的魅力

开源出来以后,大部小伙伴都是比较支持的,有不少小伙伴都参与了进来一块儿完善。框架

这里点名表扬一下Github用户名为 sakuragi1111smile2coder 这两位老哥。ide

sakuragi1111 这位老哥经过参考 Dubbo 源码实现了 SPI 机制。工具

smile2coder 这位老哥为 guide-rpc-framework 添加了经过注解实现服务消费的功能。学习

目前的话, guide-rpc-framework 已经支持经过注解进行服务消费和注册。ui

程序世界,什么样的人都有,有人感谢你,也会有人贬低你。

03 不那么好的声音

在个人 guide-rpc-framework 开源以后,也常常会受到像:“你有本事别用现成的框架写一个啊?”、“你这个写的一点亮点都没有,有啥意思?”、“都有了 Dubbo 以后,为啥还要本身写一个?”、“重复造轮子没意义”......之类的不太友善的话语。

说句内心话,通常说出来这种话的人每每技术水平很低。

若是,你指出我哪里写的很差,我很乐意地去修改。可是,你站在上帝视角说着风凉话,那就是人品有问题了。

1.为何不能利用现成的框架呢?(好比为啥不用 JDK NIO 而用 Netty?)

绝不夸张地说:开源出来的东西,就是全体技术人共同的财富。

Netty 比 NIO 更好用、更完善,我为啥还要直接使用 NIO呢?咱们日常常常接触的 Dubbo、RocketMQ、Elasticsearch、gRPC 等等都用到了 Netty 啊。

2.你这个写的一点亮点都没有,有啥意思?

有能耐的话,你也能够本身写一个。说出此类的话的人,每每是有及其嫉妒心理的人。并且,RPC 框架自己就已经有不少比较成熟的例子了好比 Dubbo。说实话,Dubbo 基本是已近把 RPC 框架能考虑到的点都考虑到了。

我不信你一我的,能干过人家一个团队好多年的成果。

3.都有了 Dubbo 以后,为啥还要本身写一个?

必定要学会看 README!!!

我在项目的 README 中明确说明了:写这个 RPC 框架主要是为了经过造轮子的方式来学习,检验本身对于本身所掌握的知识的运用。

4.重复造轮子没意义

咱们实际项目开发中是比较忌讳造轮子的,可是,实际学习过程当中造轮子绝对是最本身百利而无一害的!

个人 RPC 框架确定是没法和 Dubbo 这类已经这么成熟的相提并论。可是,在本身去写 RPC 框架的时候,更加加深了本身对于 RPC 框架的认识。实现的过程当中,遇到了不少问题,解决问题的过程当中也提升了本身的编程能力。总而言之,造轮子是一种特别可以提升本身系统编程能力的手段。

04 拥抱开源

开源绝对是编程领域最美妙的事情之一,大幅提升了咱们的生产力。

没事就去开源社区好比 Github 或者 Gitee 逛逛,在这里你能够get到各类好东西。

你能够在 Github 分享不少东西,你的学习笔记、本身作的实战项目、本身造的轮子......(资源类的不太推荐,太容易侵权)。

虽然,如今 Github 被不少人单纯玩成了引流工具。可是,总体来讲 Github 总体技术环境和氛围仍是很不错的!

另外,最好的话是要给项目弄一个英文版本,项目代码中的注释最好也要是英文的。毕竟是开源,最好是能准守开源精神使用世界通用语言(这一点我本身也没作好,反思!)。

若是你想让本身的开源项目被更多人知道的话,你能够在下面技术平台宣传(不宣传的话,开源的东西很难被别人知道,不要让好东西被埋没):

若是有帮助的话,不要吝啬大家手中的在看和赞!“怼”起来!

以上 4 本优质原创 PDF 微信搜“JavaGuide”后台回复“面试突击”便可免费领取。