摘要:DTT直播邀请到管雷鸣与广大开发者分享“如何在开源领域找到适合自己的路”。
“想象一下,你写的代码被越来越多的人使用,并极大地帮助他们提高了开发效率和稳定性。”这是不是一件很酷的事?而这正是开源的魅力…
开源作为一种推动软件开发技术创新的新模式,广受开发者的喜爱。作为拥有40余个开源项目,全国开源软件Top10的出品人,雷鸣云CEO管雷鸣深耕开源领域15年,并一直保持热爱。
开发者如何参与开源,能收获到哪些价值?本期华为云开发者社区DTT直播,邀请到管雷鸣与广大开发者分享“如何在开源领域找到适合自己的路”。
缘起:一切从热爱开始
2008年,管雷鸣开始接触SaaS自助建站,业内在当时还没有开源的相关系统,小伙伴们对此都怀抱期待,于是他想着利用空余时间写一个出来。
2010 年,他在中国站长社区发布了寻仙WAP2.0(一个用于搭建手机网站的系统),短短几个月,下载量破千,让管雷鸣受到极大鼓舞,由此热爱上了开源。
随后在2015年,管雷鸣继续接触到开源中国码云,用Java开发了一个游戏辅助工具并将源码放在了码云上,这也成为他在开源代码托管平台上发布的第一个项目。
2022年,管雷鸣参与华为云“开源开发者支持计划”,发布DataX for HuaweiCloud OBS插件,获得了华为云沃土云创一万元奖励,同时也上架到了华为云云商店,支持其他开发者云上一键部署。
“参与开源的初衷更多的是热爱,人生中应该要做一些自己喜欢的事儿。比方写代码到半夜十二点也感觉不到累,思维会极其活跃清晰,这可能就是开源开发者的信仰和追求。”管雷鸣讲到。
从0 到1参与开源项目经验分享
首先,在选择适合自己的开源项目时,要结合自己最擅长的领域,契合当前的能力和兴趣,避免因为参与开源给自己造成精神上的压力、生活中的负担。
如何找到开源项目?
管雷鸣结合自己的经验给出了几点建议:
- 有好的想法,可以在开源项目中提 Issues。
- 针对开源项目中,使用者在Issues提的问题及bug,可以踊跃参与实现及修复。
- 不少开源项目作者都是业余时间进行更新维护的,时间不会很充足,可以针对开源作者所发布的一些任务进行接取,主动参与任务。
- 某些开源组织会发布一些任务,其中涉及到各种语言及知识点,比如华为云开源&开发者示例代码仓中,就罗列出很多开源任务 https://gitee.com/HuaweiCloudDeveloper/rewarding-cloud-native-projects开发者如果在其中有恰好自己熟悉的,便可以非常方便的接取
对项目有问题想交流时,良好的沟通方式可以在最短的时间内,将信息传达给他人。例如在项目中提Issues ,也可添加项目相关的微信群、QQ群进行交流;沟通过程中,将自己的信息表达明确,尽量减少出现来回询问互动的过程。
正确阅读和理解开源代码
开源项目中的README.md及相关文档是必读的。动手之前先看文档说明,避免自己花了半天时间读代码找问题,而问题就在文档中明确有说明;在研究项目的过程中,自己一定要参与进去,可以先定一个小目标,在本地能先跑起来,之后就可以尝试改动并验证改动是否正确。
在项目中提交自己的贡献
如果项目是单自己的,可以在github或gitee上注册一个账号,创建一个仓库,进行提交上去。具体提交的步骤社区中都有非常完善的文档可以进行参考。
如果是别人的开源项目,并且自己参与会非常多时,可以联系作者把你加入到这个仓库的开发者中,改动即可直接推送上来。
在大多数情况下,你想参与别人的开源项目进行贡献时,可以Fork这个仓库。Fork后就会克隆出一个自己的仓库来。所有的修改都在克隆后自己的这个仓库,也就是自己的仓库中进行修改。需要注意的事,每次更改功能前,要同步一下自己克隆的仓库,保证自己仓库代码是最新的。改动完成后,提交一个合并请求到主仓库进行申请合并。
开源for HuaweiCloud任务实战分享
管雷鸣还分享了一个有代表性的参与开源任务的经验:给 DataX 做上华为云 OBS 的插件,且获得了华为云开源支持计划的1万元激励。开源项目obs-datax-plugins中,DataX是一个开源异步数据同步工具,可以提供各种异构数据源之间高效的数据同步,但它并不适配管雷鸣在用的华为云对象存储服务OBS,为此需要给DataX做一个适配华为云OBS的插件。
“在制作这个插件过程中,首先对其Fork了一个自己的仓库,在本地开发工具上,将克隆后的仓库拉下来,让项目在本地能够运行起来,然后按照官方的插件开发要求进行尝试。在对接OBS接口的过程中,发现其中有个SDK接口文档已过时,也没有最新的文档说明,我就在社区中联系华为云开源组织的成员说明情况。对方回应速度非常快,双方立马建立专属讨论群进行详细对接,仅用了5分钟就解决问题。让我感受到,后方的技术援助很强大,自己不是一个人在战斗。”
软件功能完成测试无误后,管雷鸣又对文档进行了补全。代码方面,在华为云开源组织的gitee中,新建了插件的仓库。为防止官方主程序仓库更新后自己的仓库代码会过时,又针对这个插件给出详细的使用步骤,最终成功完成了obs-datax-plugins的开发。基于该插件,其他开发者和企业能够快速完成华为云上OBS相关的数据迁移诉求,大大提高了效率。
对于文档的使用,管雷鸣有自己的感悟。“在参与开源项目时,代码及功能的书写只是一部分,文档的使用也占有很大的比重。文档完善,使用者可以花最少的精力运行起来,同时增加对项目的信任。另外,入门尝试不需要那么多详细的扩展,尽量让使用者能最快跑起来,验证是不是自己想要的,那么后面就愿意拿出大把的时间来详细阅读你的文档。”
开源路上有华为云相伴,收获满满
在管雷鸣看来,做好开源项目既能够帮助更多开发者,到还能收获商业回报,是一个一举多得的事情。
“自从18年创业以来,无任何销售人员,纯技术团队。因为有自身稳定可靠的产品,在BUG跟修复方面投入很少,能够大幅缩减成本,保持较高的利润率。自己开源的项目SAAS 建站系统经过多年不断完善,通过企业版授权、功能扩展定制等,去年产生了70万的销售额,这是刚开始时根本就没想到的。”
SAAS 建站系统产生的更多的定制需求,管雷鸣也会分发给一起参与的小伙伴。这样一方面降低了成本,同时伙伴们也能获得一份收益;客户方面还能节省费用,形成了正向循环。
管雷鸣的部分开源项目
“目前在gitee的华为云开源组织中,还有不少开源项目可以参与。在项目完成后,通过审核之后大家可以在软件中留名、被华为云开源组织认可,获得资源扶持及激励。”管雷鸣表示。“正是有了像华为云这样的企业,这两年国内开源环境得到了很大的改善,开源作者不再被一直薅羊毛,开源也不再被认为是不务正业了。”
为了更好的帮助开源软件开发者,华为云面向开源软件工具链与环境、开源应用构建和开源生态组件构建这三大重点场景,提供技术支持、奖金支持、活动支持,邀请更多的开发者,携手构建开源for HuaweiCloud。
共建开源生态,打开产业新增长空间
开发者将开源软件工具、开源应用和开源组件与华为云对象存储OBS、数仓DWS、云容器CCE等云服务对接,同时基于Terraform模板,上架到华为云云商店,支持其他开发者一键部署使用开源组件 ,我们称为“开源xxx for HuaweiCloud”。 下图为华为云开源&开发者示例代码仓的示例,涵盖Dromara社区、Java、Go、Python、C&C++及其他开源类项目,数量超过100。感兴趣的开发者可以点击:华为云开源&开发者示例代码仓,了解更多。
100+华为云开源技术项目示例
不仅如此,参与贡献的开发者将有计划会获得华为云沃土云创计划激励,领取云服务资源代金券,可用于开发部署。如果您有意愿参与,请在issues留下您的邮箱或者主动发送邮件到[email protected],我们会尽快联系您。
俗话说,没有目标的行为是坚持不久的。万千同管雷鸣一样的开源开发者们始终跟随着内心热爱的召唤,以及帮助他人的愉悦,在开源之路上持续前进着。也正是这份坚持,让他们在开源的路上获得更多的助力。祝开发者们越走越好,开源软件生态愈加繁荣!