文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站: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数据处理-matplotlib入门(2)-利用随机函数生成变化图形2

    鉴于上一篇中最后三个问题: 1.上述程序是否能进行优化(比如功能相同的) 2.创建三个3个实例,用了3个语句,能否建一个函数,只输入一个数n,就自动创建n个实例?同时,每个实例的num_times随机 ...

  2. 【MyBatis】多关键字的模糊查询

    目录 情景分析 题目 要求 相关代码 Mapper.java Impl.java mapper.xml test.java 思路分析 1.最开始,参数没有使用List,引起的问题 2.Mybatis的 ...

  3. vue3中的四种插槽的介绍-保证让你看看的明明白白!

    插槽 当组件中只有一个插槽的时候,我们可以不设置 slot 的 name 属性. v-slot 后可以不带参数,但是 v-slot 在没有设置 name 属性的时候, 插槽口会默认为"def ...

  4. 2.Docker安装

    CentOS Docker 安装 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker.Docker 运行在CentOS 7 (64-bit)上, 要求系统为64位.Linux系统内核版 ...

  5. 聊聊FLINK-25631贡献

    从入行做数据库开发,到2018年过渡到大数据开发,可以说我已经与sql朝夕相处了七八年了,经常惊讶于简单的语法就能产生复杂的操作,而且还能根据索引等统计信息自动优化,不禁很想实现自己的sql语法,却不 ...

  6. 组织:ITU

    国际电信联盟(International Telecommunication Union -- ITU)是联合国专门机构之一,主管信息通信技术事务,由无线电通信.标准化和发展三大核心部门组成,其成员包 ...

  7. Spring Boot下Spring Batch入门实例

    一.About Spring Batch是什么能干什么,网上一搜就有,但是就是没有入门实例,能找到的例子也都是2.0的,看文档都是英文无从下手~~~,使用当前最新的版本整合网络上找到的例子. 关于基础 ...

  8. Spring大事务到底如何优化?

    所谓的大事务就是耗时比较长的事务. Spring有两种方式实现事务,分别是编程式和声明式两种. 不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交. 一.大事务产生的原因 操作的数据 ...

  9. Java 接口返回值集合防止空指针

    接口 返回值为一个集合 public interface UserSearchService{ List<User> listUser(); } 接口实现 public List<U ...

  10. 用STM32玩SR04(测距、串口显示、OLED显示)

    目录 用STM32玩SR04(测距.串口显示.OLED显示) 超声波模块使用 SR04初始化 SR04使用串口打印数据 SR04使用OLED来传输数据,并显示在OLED上 用STM32玩SR04(测距 ...