走进开源,拥抱开源
本文主要分享开源文化介绍,如何走进开源、参与开源及拥抱开源。
一、开源文化
1.1 什么是开源
开源,即Open Source 全称 开放源代码,主要有4个特征:
- 源码公开
源代码可以公开访问、使用、修改和分发,只需要遵守对应的项目协议即可。
- 免费使用
不需要为开源付费,就可以使用。当然,开源项目相对于商业版软件会有些稳定性差异,需要大家一起共建共进。
- 多元协作
开源鼓励开发者之间的协作,共同改进和维护软件,且形式多样。
- 社区驱动
开源项目通常由一个活跃的社区支持,社区成员可以是个人开发者、企业或其他组织。
1.2 为什么要开源
那么,为什么项目发起方或一些社区组织会选择开源呢?
往大了讲,是为了推动技术进步和社会变革,全民 共建共进。展开而言,可以从如下4个维度来看:
- 促进创新
开源鼓励技术共享和合作,吸引全球范围内的开发者参与到项目中,从而加速技术的创新和发展。
- 降低成本
通过使用开源软件,组织可以节省软件开发和采购成本,避免昂贵的许可费用,并降低运营成本。发起方,可以凝聚一批共同使用者,无论是提出改进点、新特性还是推广宣传都是利于项目发展的。
- 文化传播
开源传播了一种开放、协作和共享的文化,这些文化在技术领域之外也具有重要意义。随着这股文化的传播,开源也不仅限于Code了,更多的是一种开源开放的精神。
- 社区网络
开源通常围绕一个活跃的社区建立,这个社区不仅支持软件开发,还为参与者提供建立联系和合作的机会。
1.3 有哪些开源协议
俗话说: “无规矩不成方圆”,开源也是如此。
在参与开源社区时,需要尊重社区红线,在使用开源项目和参与开源过程中,需要遵守对应的开源协议。
开源许可证(Open Source License)大概有上百种,常见的开源协议大致有GNU、BSD、MIT、Mozilla、Apache和LGPL等,这里就不过多展开,可以和大模型聊聊。
二、选择开源
2.1 开源社区的类型与特点
随着开源文化的普及传播,开源已不再只局限于Code,对于选择开源除了Code项目类,还有社区类型:
- 项目型社区
聚焦特定开源项目,包括代码贡献和协作、集成测试、应用实践、用户反馈等核心功 能,大部分项目型社区由背后的机构或企业来资助或直接运营。
例如:Apache Doris
- 用户型社区
主要是开源爱好者自发形成的社区,以知识分享、经验交流和传播开源文化为目标。
例如:PowerData
- 服务型社区
具备开源代码、项目孵化、开源治理、媒体等多种服务功能的社区,其他垂直小众社区也在该社区平台构建自己的影响力。
例如:Gitee
- 开发者社区
将开发者凝聚在一起,赋能开发者、研发团队及科技企业在IT知识学 习、人才招聘、研发效能与协同管理等方面的高速成长与发展。
例如:CSDN
2.2 如何选择开源社区
关于如何相对正确地选择一个开源社区,可以参考如下几点:
- 社区活跃度
可以潜水洞察,社区是否有组织丰富的线下/线上活动,如Meetup、研讨会、技术分享会等,促进成员之间的面对面交流和合作。当然,水天水地的活跃也是活跃,只要不违反社区红线即可。
- 社区规模
成员数、新老成员比例是否合理。
- 社区治理
核心维护者是否正能量(傻狍点也可),社区委员会是否齐心,决策流程合理完善。不要加入后感觉自己像是身入了宫斗剧中,如果有此感,建议尽早脱身变为第三人视角,吃瓜何乐不为。
- 社区文化
了解社区的价值观和文化氛围,是否包容、开放、互助,积极向上的社区文化对于社区和参与者的长期发展至关重要。
2.3 如何选择开源项目
关于如何相对正确地选择一个开源项目,可以参考如下几点:
- 项目活跃度
是否有大量的贡献者积极地提交代码、解决问题、撰写文档等,对项目的贡献是持续且稳定的。
- 项目规模
成员数和贡献者数是否呈上升趋势,生态体系是否完善和健全。
- 项目治理
issue/pr是否有回应,发版效率是否可观,代码规范和质量是否有合理把控。
- 项目背景
了解项目的来源、技术栈、发展历程和维护团队等信息,有助于你选择合适的开源项目。
三、参与开源
3.1 开源社区的参与方式
开源社区的参与方式有很多,例如:
- 融入社区
参与社区讨论、活动策划和提供建设idea等,帮助社区正向发展。
- 提供场地/参与活动/赞助支持
当一个无商化背景纯开源的社区需要举办线下活动时,如果有场地支持或其它周边等赞助支持,犹如雪中送炭。而当社区举办活动时,社区成员积极参与其中,亦是社区发展的底气。
- 布道推广
通过博客、社交媒体等渠道宣传社区,吸引更多的用户和贡献者加入;就算是一次小小的转发,也是布道推广。
3.2 开源项目的参与方式
开源项目的参与方式有很多,例如:
- 代码贡献
最直接的方式,通过提交代码、修复bug、实现新功能等形式来直接参与项目的开发。
- 文档编写
大部分开源项目都会有对应的官方使用文档,如果发现文档中有错别字、逻辑描述有误或有想新增示例介绍等,可以提一个文档pr进行fix/new,利人利己,何乐不为。
- Bug测试与反馈
在开源项目使用过程中,如果发现有bug,可以提一个issue或通过其它渠道向社区反馈,或者直接/共同fix,共建共进。
- 问题总结与分享
对遇到的问题进行沉淀总结和分享,便于社区小伙伴遇到同类问题时可以快速找到答案。
- 布道推广
通过博客、社交媒体等渠道宣传项目,吸引更多的用户和贡献者加入。
四、Apache Doris 参与示例
4.1 Doris开源项目Step1
Apache Doris 有完善的官网、文档和 GitHub Readme,参与Apache Doris可以从查阅它们开始,对Doris有一个初步的了解。
4.2 Doris开源项目Step2
选择合适的建联方式,社区推荐的沟通模式:
- 邮件组
发邮件到社区 dev@doris.apache.org,进行沟通交流。
- 双周会
每两周会在腾讯会议上进行双周会线上互动,会议入口: https://meeting.tencent.com/dm/6iQBgkIhn5LO
- 社交平台
可以通过主流的一些社交平台进行交流:微信社群、论坛、知乎、
Twitter、Slack等。
4.3 Doris开源项目Step3
可以参考如下找到第一个贡献点:
- 文档贡献
如果发现Doris的官方文档中有错别字、逻辑描述有误或有想新增示例介绍等,可以提一个文档pr进行fix/new:
https://doris.apache.org/zh-CN/docs/get-starting/what-is-apache-doris/
- Good First Issue
可以通过此issue了解:[Good First Issue] Doris’ Future
https://github.com/apache/doris/issues/17176
- Bug 修复
在使用Doris过程中,如果发现有bug,可以提一个issue或通过其它渠道向社区反馈,或者直接/共同fix,共建共进。
4.4 Doris开源项目Step4
参与社区开发:
- Contributor Guide
可以通过如此文档,了解如何成为 Contributor:
https://doris.apache.org/zh-CN/community/how-to-contribute/contributor-guide
https://doris.apache.org/zh-CN/community/how-to-contribute/pull-request
https://doris.apache.org/zh-CN/community/how-to-contribute/contribute-doc
- Dev tools
可以通过如此文档,了解Doris相关的开发工具:
https://doris.apache.org/zh-CN/community/developer-guide/docker-dev
https://doris.apache.org/zh-CN/community/developer-guide/fe-idea-dev
https://doris.apache.org/zh-CN/community/developer-guide/be-vscode-dev
- Doris Improvement Proposals
Detailed design for major features:
https://cwiki.apache.org/confluence/display/DORIS/Doris+Improvement+Proposals
五、开源小结
开源传播了一种开放、协作和共享的文化,这些文化在技术领域之外也具有重要意义。随着这股文化的传播,开源也不仅限于Code了,更多的是一种开源开放的精神。
欢迎各位参与其中,共建共进。
版权归原作者 一臻数据 所有, 如有侵权,请联系我们删除。