文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站: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. Django/MySql数据库基本操作&ORM操作

    数据库配置: #第一步在settings里面 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbna ...

  2. Qt(QtWebEngine)加载本地网页跨域问题的总结

    目录 1. 概述 2. 详论 2.1. 传参 2.2. JS module 3. 建议 4. 参考 1. 概述 浏览器直接加载本地网页的时候,如果网页涉及到加载本地资源(如图片),会出现跨域的问题.Q ...

  3. Springboot 整合 MyBatisPlus[详细过程]

    Springboot 整合 MyBatisPlus[详细过程] 提要 这里已经将Springboot环境创建好 这里只是整合MyBatis过程 引入Maven依赖 添加MyBatisPlus启动依赖, ...

  4. 论文阅读 Dynamic Graph Representation Learning Via Self-Attention Networks

    4 Dynamic Graph Representation Learning Via Self-Attention Networks link:https://arxiv.org/abs/1812. ...

  5. CSS展开收起

    有一个问题是,在上述例子中,把段落内容的"浮动元素"去掉后,段落最后从"行"字开始换行了,"收起"却不换行,也就是会存在有两个字内容看不见情 ...

  6. 理解ASP.NET Core - 发送Http请求(HttpClient)

    注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 前言 在.NET中,我们有很多发送Http请求的手段,如HttpWebRequest.WebC ...

  7. 896.Montonic Array - LeetCode

    Question 896. Monotonic Array Solution 题目大意: 类似于数学中的减函数,增函数和物理中的加速度为正或为负 思路: 先比较前两个是大于0还是小于0,如果等于0就比 ...

  8. 817. Linked List Components - LeetCode

    Question 817. Linked List Components Solution 题目大意:给一个链表和该链表元素组成的一个子数组,求子数组在链表中组成多少个片段,每个片段中可有多个连续的元 ...

  9. 好客租房1-React基础目标

    学习目标 能够说出React是什么 掌握react的特点 掌握react的基本使用 能够使用react脚手架 学习目录 react概述 react基本使用 react脚手架

  10. CSAPP 之 ShellLab 详解

    前言 本篇博客将会详细介绍 CSAPP 之 ShellLab 的完成过程,实现一个简易(lou)的 shell.tsh 拥有以下功能: 可以执行外部程序 支持四个内建命令,名称和功能为: quit:退 ...