被喷了!聊聊我开源的RPC框架那些事
前段时间利用业余时间写了一个简单的 RPC 框架,花费了不少精力。开源出来之后,少部分不太友好的技术人站在上帝视角说了风凉话。就很难受,兄弟,谁还没有一个玻璃心。
简单吐槽一波,给大家聊聊关于 guide-rpc-framework 的一些事情。
01 我的自定义 RPC 框架近况
关注我的大部分小伙伴应该都知道,3个月前,我利用业余时间手写一个简单的 RPC 框架(玩具),名字叫做 guide-rpc-framework。
目前的话,这个项目已经有 0.5k 的 star。感谢小伙伴们的支持!
写这个 RPC 框架的主要目的是为了个人学习,开源出来的目的主要是想帮助到更多人。
02 开源的魅力
开源出来之后,大部小伙伴都是比较支持的,有很多小伙伴都参与了进来一起完善。
这里点名表扬一下Github用户名为 sakuragi1111 和 smile2coder 这两位老哥。
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框架那些事的更多相关文章
- 2.Dubbo开源分布式服务框架(JAVA RPC)
1. Dubbo介绍 Dubbox是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能RPC(即远程调用)实现服务的输出和输入功能, 可以和Spring框架无集成.Dubbo是一款高性能 ...
- 微服务,开源 RPC 框架 - Spring Cloud
Spring Cloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,仅支持 Java 语言 Spring Cloud 利用 Spring Boot 特性整合了开源行业中优秀的组 ...
- 字节开源RPC框架Kitex的日志库klog源码解读
前言 这篇文章将着重于分析字节跳动开源的RPC框架Kitex的日志库klog的源码,通过对比Go原生日志库log的实现,探究其作出的改进. 为了平滑学习曲线,我写下了这篇分析Go原生log库的文章,希 ...
- 6种微服务RPC框架,你知道几个?
开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...
- 6 种微服务 RPC 框架,你知道几个?
开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...
- Dobbo的继任者?试用微博RPC框架Motan
从14年开始就陆续看到新浪微博RPC框架Motan的介绍,时隔两年后,微博团队终于宣布开源轻量级RPC框架Motan,项目地址: https://github.com/weibocom/motan/ ...
- abelkhan中的rpc框架
rpc简介:http://www.ibm.com/developerworks/cn/aix/library/au-rpc_programming/index.html 常见的rpc框架有protob ...
- 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
转自: http://blog.csdn.net/liubenlong007/article/details/54692241 概述 前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺 ...
- FW:主流RPC框架
主流RPC框架 2015年10月27日 zman RPC 介绍目前在互联网公司比较流行的开源的RPC框架. RPC框架比较 语言 协议 服务治理 社区 机构 Hessian 多语言 he ...
随机推荐
- 5分钟快速了解MySQL索引的各种类型
文章持续更新,微信搜索「万猫学社」第一时间阅读. 关注后回复「电子书」,免费获取12本Java必读技术书籍. 什么是索引? 索引是数据库存储引擎用于快速查找到指定数据的一种数据结构. 可以用新华字典做 ...
- 为什么 java.util.Stack不被官方所推荐使用!
Java 为什么不推荐使用 Stack 呢? 因为 Stack 是 JDK 1.0 的产物.它继承自 Vector,Vector 都不被推荐使用了,你说 Stack 还会被推荐吗? 当初 JDK1.0 ...
- HDFS概述和Shell操作
大数据技术之Hadoop(HDFS) 第一章 HDFS概述 HDFS组成架构 HDFS文件块大小 第二章 HDFS的Shell操作(开发重点) 1.基本语法 bin/hadoop fs 具体命令 ...
- Azure Kubernetes Service 入门
一,引言 上一节,我们使用Azure CLI 创建了Azure Resource Group 和 Azure Container Registry 资源,并且将本地的一个叫 “k8s.net.demo ...
- 深度学习调参笔记(trick)
1. Adam 学习率0.00035真香: 2. SGD + Momentum 学习率应当找到合适区间,一般远大于Adam (取1,2,5,10这类数据): 3. 提前终止,防止过拟合; 4. Ens ...
- Linux MPI环境配置
参考:https://blog.csdn.net/lusongno1/article/details/61709460 注意点: 1. /etc/profile.d/user.sh和/etc/ld.s ...
- React_TODOList 数据增删改查
①.功能代码实现: 添加数据 查询数据,展示 删除数据 修改数据 ②.数据持久化操作 localStorage.setItem('key',value) var value = localStorag ...
- 细说强网杯Web辅助
本文首发于“合天智汇”公众号 作者:Ch3ng 这里就借由强网杯的一道题目“Web辅助”,来讲讲从构造POP链,字符串逃逸到最后获取flag的过程 题目源码 index.php 获取我们传入的user ...
- 没想到吧!关于Dubbo的『消费端线程池模型』官网也写错了。
这是why的第 63 篇原创文章 荒腔走板 大家好,我是 why,欢迎来到我连续周更优质原创文章的第 63 篇.老规矩,先荒腔走板聊聊其他的. 上面这张图片是我前几天整理相册的时候看到的.拍摄于 20 ...
- Number(),parseInt()和parseFloat
一.Number() 1.如果是传进去数字值,只进行传入和传出,前置为 0x 的数字 和 前置 为0且不包含数字8,9的数字 ,会被转为十进制,对于其他的数字来说通常没有变化. 2.如果传进去 ...