文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站: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. XCTF练习题---CRYPTO---Morse解析

    XCTF练习题---CRYPTO---Morse解析 flag:morsecodeissointeresting 解题步骤: 1.观察题目,下载附件进行查看 2.得到文件内容,由0.1组成,初步判断为 ...

  2. Prim 最小生成树 图解

    ​ 什么是生成树 子图:G=<V,E>,G'=<V', E'>,为两个图(V为点集,即图中点的集合,E为边集),如果V'是V的子集且E'是E的子集,则G'是G的子图. 如果V' ...

  3. 用户与安全 -(1)Linux用户及组管理

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 前言 Linux 是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登 ...

  4. Docker容器的安装和使用

    Docker容器的安装和使用 安装: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 或国内:curl -sSL ...

  5. resultMap,日志,分页

    问题:属性名和字段名不一致 解决方法 起别名 select id, username, password as pwd from db4.user resultMap结果集映射 id username ...

  6. 用crash tool观察ARM64 Linux地址转换

    初学者学习Linux系统地址转换时,如果只是学习理论,又或者研读代码,那可能感觉比较枯燥.此时如果可以利用某些工具实际观察一下地址转换的过程,那可能会给枯燥的内核学习带来些微的乐趣.crash too ...

  7. Git 上传文件项目到github,gitee详细教程!(本文用的gitee)

    1:安装Git 下载地址:https://git-scm.com/ 2:生成ssh密钥不会的可以去另一篇文章 https://www.cnblogs.com/psfjc/p/15980893.html ...

  8. Springboot启动类及注解说明

    Spring boot的启动是基于main方法的,其主要注解为: 1. @springBootApplication:项目的启动注解,是一个组合注解,包含@SpringbootConfiguratio ...

  9. python读取csv、excel、mysql内容

    前提:导入扩展包 import pandas as pd import pymysql ①读取csv文件 fpath='/test.csv'ratings=pd.read_csv(fpath)prin ...

  10. declare-声明限定类型变量

    用于声明变量并设置变量的属性. 语法 declare [+/-][rxi][变量名称=设置值] declare -f 特殊符号 +/- "-"可用来指定变量的属性,"+& ...