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

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

01 我的自定义 RPC 框架近况

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

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

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

02 开源的魅力

开源出来之后,大部小伙伴都是比较支持的,有很多小伙伴都参与了进来一起完善。

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

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

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

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

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

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”后台回复“面试突击”即可免费领取。

被喷了!聊聊我开源的RPC框架那些事的更多相关文章

  1. 2.Dubbo开源分布式服务框架(JAVA RPC)

    1. Dubbo介绍 Dubbox是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能RPC(即远程调用)实现服务的输出和输入功能, 可以和Spring框架无集成.Dubbo是一款高性能 ...

  2. 微服务,开源 RPC 框架 - Spring Cloud

    Spring Cloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,仅支持 Java 语言 Spring Cloud 利用 Spring Boot 特性整合了开源行业中优秀的组 ...

  3. 字节开源RPC框架Kitex的日志库klog源码解读

    前言 这篇文章将着重于分析字节跳动开源的RPC框架Kitex的日志库klog的源码,通过对比Go原生日志库log的实现,探究其作出的改进. 为了平滑学习曲线,我写下了这篇分析Go原生log库的文章,希 ...

  4. 6种微服务RPC框架,你知道几个?

    开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...

  5. 6 种微服务 RPC 框架,你知道几个?

    开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...

  6. Dobbo的继任者?试用微博RPC框架Motan

    从14年开始就陆续看到新浪微博RPC框架Motan的介绍,时隔两年后,微博团队终于宣布开源轻量级RPC框架Motan,项目地址: https://github.com/weibocom/motan/ ...

  7. abelkhan中的rpc框架

    rpc简介:http://www.ibm.com/developerworks/cn/aix/library/au-rpc_programming/index.html 常见的rpc框架有protob ...

  8. 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型

    转自: http://blog.csdn.net/liubenlong007/article/details/54692241 概述 前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺 ...

  9. FW:主流RPC框架

    主流RPC框架  2015年10月27日  zman  RPC 介绍目前在互联网公司比较流行的开源的RPC框架. RPC框架比较   语言 协议 ​服务治理 ​社区 机构 Hessian 多语言 he ...

随机推荐

  1. 【算法•日更•第二十三期】数据结构:two-pointer(尺取法)&莫队

    ▎引入 ☞『例题』 一道十分easy的题: 洛谷P1638 长度为n的序列,m种数 找一个最短区间,使得所有数出现一遍 n≤1e6 ,m≤2e3. ☞『分析』 这道题非常的简单,但是如果不会two-p ...

  2. Python 使用BrowserMob Proxy + selenium 获取Ajax加密数据

    BrowserMob Proxy,简称 BMP,它是一个 HTTP 代理服务,我们可以利用它截获 HTTP 请求和响应内容. 第一步:先安装 BrowserMob Proxy 的包. pip inst ...

  3. 数据恢复----重组raid5解析

    重组Raid5 第一步:判断RAID5条带大小 利用winhex同时打开6个物理镜像每块成员盘中的$MFT文件记录(16进制搜索“46494c45”),并且保证找到的文件记录在每块物理盘的同一扇区(在 ...

  4. C++开发时字符编码的选择

    最近看了很多有关字符编码的讨论帖子, 自己也做了很多尝试, 针对linux和windows上字符编码的选择做了个简单整理, 在此做个记录 首先是基础编码知识, 下面我列出的4个编码方式或字符集是我们应 ...

  5. linux zip压缩文件忽略指定的文件夹

    zip -r productImages.zip ./* -x "cache**" 压缩时,会忽略cache下的所有文件及文件夹

  6. Mysql锁【转】

    一.概述 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则.对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外. M ...

  7. #企业项目实战 .Net Core + Vue/Angular 分库分表日志系统六 | 最终篇-通过AOP自动连接数据库-完成日志业务

    教程预览 01 | 前言 02 | 简单的分库分表设计 03 | 控制反转搭配简单业务 04 | 强化设计方案 05 | 完善业务自动创建数据库 06 | 最终篇-通过AOP自动连接数据库-完成日志业 ...

  8. JS 替换日期的横杠为斜杠

    例如1: <script type="text/javascript">      var dt = "2010-01-05";           ...

  9. 【Gin-API系列】Gin中间件之鉴权访问(五)

    在完成中间件的介绍和日志中间件的代码后,我们的程序已经基本能正常跑通了,但如果要上生产,还少了一些必要的功能,例如鉴权.异常捕捉等.本章我们介绍如何编写鉴权中间件. 鉴权访问,说白了就是给用户的请求增 ...

  10. 设置android studio启动时不检查sdk Android studio启动时总是在找AndroidSDK的解决办法

    安装完android studio后,首次启动会弹出检查sdk组件等设置,点击finish会去下载sdk等,如果没有设置代理的情况下,这个界面会卡很久.截图如下: blog0826-1.png 所以, ...