文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站:xiaomage.info

就在前几天,收到了 Apache ShardingSphere Vote 我成为 Committer 的邮件,心情非常高兴,被提名代表自己的贡献得到了充分的认可;在这里,非常感谢 ShardingSphere 团队给予我的帮助!

写这篇文章,主要是记录自己贡献 ShardingSphere 这段时间内,代码提交的心路历程。让大家找到对的道路,能够和我一样,成为 Apache 项目的 Committer。

熟练使用

如果有个人告诉我他想贡献一个项目,但是连怎么使用都不知道,那我一定觉得他在和我开玩笑。

与 ShardingSphere 结缘是在 21 年,当时在集团内推广 ShardingSphere,并结合业务做了众多个性化功能;在定制的过程中,发现了一些问题,并且尝试去解决。

也就是这个使用与定制的过程中,对 ShardingSphere 的设计理念和源码有了深入了解,而这也是驱动自己进行代码贡献的前提。

摆脱畏惧

如果对 Apache 开源项目没有贡献过的小伙伴,可能提到 PR(Pull Request) 代码都会比较陌生,有种不明觉厉的感觉。

以我举例,在对 ShardingSphere 进行贡献前,觉得能对 Apache 项目产生贡献的,都是那种技术大拿,压根没有想过自己可以提交 PR。

其实这是一种很错误的想法,刚开始贡献 Apache 项目不一定是要贡献核心代码,可以从简单的测试用例或文档修复等任务做起;这样可以快速帮助你熟悉贡献流程,为后续的代码贡献做铺垫。

成为 Apache Committer 的第一步,是跨过心里的那道坎,从想象转换为实际行动。

参与开源

如果你想参与开源项目,ShardingSphere 会是个不错的选择。添加 ShardingSphere 社区经理微信:ss_assistant_1,拉你进官方交流群,群里会不定期发布 Issue 任务列表,可以根据个人想法认领尝试。

选择 ShardingSphere 在我看来,有以下好处:

  • Apache 顶级项目:GitHub 16.3 K Star,5.7 K Star,410+ contributor;
  • 广泛应用:截止目前登记,已有 217 家企业生产环境应用;深入研究后,公司应用遇到问题可以快速定位;
  • 社区活跃度:ShardingSphere 会有专人在微信交流群、中文社区和 GitHub 上进行问题答疑,如果你在贡献的过程中有问题,他们都会耐心解答,没有任何架子;
  • 项目迭代进度:Fork 后的项目,隔个几天不更新,Fetch upstream 代码时,基本都是几十上百的提交。

除去 ShardingSphere 官方发布的任务,也可以阅读接入端、分布式治理,内核、数据迁移、事务、DistSQL 等相关源码,找到自己感兴趣的内容深入研究。

成为 Committer 能收获什么

Apache 专属邮箱

提名后,Apache 会根据你提供的信息创建专属 Apache 邮箱。比如我的 ID 是 machen,对应的邮箱是:machen@apache.org

拥有 Apache 邮箱是一件非常酷的事情,代表着顶级开源组织对你能力的认可,也会对你未来找工作有一定的帮助。

想象一下,小伙伴们浏览 Apache 网站时看到了你的名字,或者和面试官发邮件时,他们会不会有种不明觉厉的感觉,形象瞬间就高大上了有木有!

邮箱地址全局唯一,可以在 Apache 官网上查询,如果已被占用将不能注册。地址:http://people.apache.org/committer-index.html。

Jetbrains 正版全家桶

Jetbrains 为所有 Apache 贡献者提供了全品类的免费许可证,根据 Apache 邮箱在 Jetbrains 官网申请永久免费许可证。

申请后,Jetbrains 会向你的邮箱发送邀请链接。让我比较感慨的有这一句话,感觉所做的事情是很有意义的。

We hope that our software will be useful for your work on the Apache Software Foundation projects. Thank you for your contribution to Open Source Software!

我们希望我们的软件将对您在 Apache 软件基金会项目中的工作有用。感谢您对开源软件的贡献!

ShardingSphere 仓库写权限

普通开发者只能对 ShardingSphere 仓库发起 PR,而 Committer 角色会拥有仓库写入权限,即合并 PR 的权限。

文末总结

Apache ShardingSphere 是一款开源分布式数据库生态项目,旨在碎片化的异构数据库上层构建生态,在最大限度的复用数据库原生存算能力的前提下,进一步提供面向全局的扩展和叠加计算能力。其核心采用可插拔架构,对上以数据库协议及 SQL 方式提供诸多增强功能,包括数据分片、访问路由、数据安全等。

如果大家对 Apache ShardingSphere 有任何疑问或建议,欢迎在 GitHub issue 列表提出,或可前往中文社区交流讨论。

GitHub issue:https://github.com/apache/shardingsphere/issues

贡献指南:https://shardingsphere.apache.org/community/cn/contribute/

中文社区:https://community.sphere-ex.com/

提名 Apache ShardingSphere Committer,说说方法的更多相关文章

  1. SphereEx 公司成立,推动 Apache ShardingSphere 社区加速发展

    近日,SphereEx 商业公司在中国红杉种子基金及初心资本助力下,已完成公司及团队组建.各大媒体平台及公众号已相继报道,并抢占新闻头条.作为以 Apache ShardingSphere 核心团队组 ...

  2. DistSQL:像数据库一样使用 Apache ShardingSphere

    Apache ShardingSphere 5.0.0-beta 深度解析的第一篇文章和大家一起重温了 ShardingSphere 的内核原理,并详细阐述了此版本在内核层面,特别是 SQL 能力方面 ...

  3. SQL 居然还能在 Apache ShardingSphere 上实现这些功能?

    在去年 10 月 5.0.0-alpha 版本发布之后,Apache ShardingSphere 经历了长达 8 个多月的持续开发与优化,终于在 6 月 25 日正式迎来了 5.0.0-beta 版 ...

  4. Apache ShardingSphere 5.0.0 内核优化及升级指南

    经过近两年时间的优化和打磨,Apache ShardingSphere 5.0.0 GA 版终于在本月正式发布,相比于 4.1.1 GA 版,5.0.0 GA 版在内核层面进行了大量的优化.首先,基于 ...

  5. Apache ShardingSphere:由开源驱动的分布式数据库中间件生态

    2021 年 7 月 21 日 2021 亚马逊云科技中国峰会现场,SphereEx 联合创始人.Apache ShardingSphere PMC 潘娟受邀参与此次峰会,以<Apache Sh ...

  6. Apache ShardingSphere 元数据加载剖析

    唐国城 小米软件工程师,主要负责 MIUI 浏览器服务端研发工作.热爱开源,热爱技术,喜欢探索,热衷于研究学习各种开源中间件,很高兴能参与到 ShardingSphere 社区建设中,希望在社区中努力 ...

  7. Apache二级域名配置方法

    下面这个Apache二级域名配置方法是今天在其它BBS看到的,以前我配置是都是配置每个为一个虚拟目录今天正在想如何写没想到找到了. Apache二级域名实现方法介绍 首先,你的拥有一个有泛域名解析的顶 ...

  8. Apache Sharding-Sphere

    Sharding-Sphere 正式步入 Apache 基金会孵化器 - 开源中国 https://www.oschina.net/news/101691/sharding-sphere-enter- ...

  9. CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL)的方法

    CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL)的方法 准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A I ...

随机推荐

  1. python学习-Day23

    目录 今日内容详细 logging模块(续集) 日志模块的主要组成部分 配置字典 配置字典在项目中的使用 第三方模块 如何利用工具下载第三方模块 查看当前解释器下载的第三方模块 下载第三方模块 直接使 ...

  2. XCTF练习题---MISC---小小的PDF

    XCTF练习题---MISC---小小的PDF flag:SYC{so_so_so_easy} 解题步骤: 1.观察题目,下载附件 2.下载完发现是一个PDF文件,经过转Word,查看属性,十六进制查 ...

  3. Java多线程—线程同步(单信号量互斥)

    JDK中Thread.State类的几种状态 线程的生命周期         线程的安全问题(同步与互斥) 方法一:同步代码块 多个线程的同步监视器(锁)必须的是同一把,任何一个类的对象都可以 syn ...

  4. 在博客文章中使用mermaid 定义流程图,序列图,甘特图

    概述 Mermaid(美人鱼)是一套markdown语法规范,用来在markdown文档中定义图形,包括流程图.序列图.甘特图等等. 它的官方网站是 https://mermaid-js.github ...

  5. Web安全学习笔记 SQL注入下

    Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...

  6. 设计模式存在哪些关联关系,六种关系傻傻分不清--- UML图示详解

    前言 UML俗称统一建模语言.我们可以简单理解成他是一套符号语言.不同的符号对应不同的含义.在之前设计模式章节中我们文章中用到的就是UML类图,UML除了类图意外还有用例图,活动图,时序图. 关于UM ...

  7. netty系列之:使用Jboss Marshalling来序列化java对象

    目录 简介 添加JBoss Marshalling依赖 JBoss Marshalling的使用 总结 简介 在JAVA程序中经常会用到序列化的场景,除了JDK自身提供的Serializable之外, ...

  8. [C++STL] 迭代器 iterator 的使用

    定义 迭代器是一种检查容器内元素并遍历元素的数据类型,表现的像指针. 基本声明方式 容器::iterator it = v.begin();//例:vector<int>::iterato ...

  9. Es图形化软件使用之ElasticSearch-head、Kibana,Elasticsearch之-倒排索引操作、映射管理、文档增删改查

    今日内容概要 ElasticSearch之-ElasticSearch-head ElasticSearch之-安装Kibana Elasticsearch之-倒排索引 Elasticsearch之- ...

  10. 解决WIN7无法安装高版本Node.js问题

    网上很多文章都让去安装低版本node 由于业务需求,低版本node npm 有一些包支持的不好 npm出cb() never call 本着更新npm 顺带弄个高版本的node 单独更新npm npm ...