走进开源,拥抱开源

本文主要分享开源文化介绍,如何走进开源、参与开源及拥抱开源。

一、开源文化

1.1 什么是开源

开源,即Open Source 全称 开放源代码,主要有4个特征:

  1. 源码公开

源代码可以公开访问、使用、修改和分发,只需要遵守对应的项目协议即可。

  1. 免费使用

不需要为开源付费,就可以使用。当然,开源项目相对于商业版软件会有些稳定性差异,需要大家一起共建共进

  1. 多元协作

开源鼓励开发者之间的协作,共同改进和维护软件,且形式多样。

  1. 社区驱动

开源项目通常由一个活跃的社区支持,社区成员可以是个人开发者、企业或其他组织。

1.2 为什么要开源

那么,为什么项目发起方或一些社区组织会选择开源呢?

往大了讲,是为了推动技术进步和社会变革,全民 共建共进。展开而言,可以从如下4个维度来看:

  1. 促进创新

开源鼓励技术共享和合作,吸引全球范围内的开发者参与到项目中,从而加速技术的创新和发展。

  1. 降低成本

通过使用开源软件,组织可以节省软件开发和采购成本,避免昂贵的许可费用,并降低运营成本。发起方,可以凝聚一批共同使用者,无论是提出改进点、新特性还是推广宣传都是利于项目发展的。

  1. 文化传播

开源传播了一种开放、协作和共享的文化,这些文化在技术领域之外也具有重要意义。随着这股文化的传播,开源也不仅限于Code了,更多的是一种开源开放的精神。

  1. 社区网络

开源通常围绕一个活跃的社区建立,这个社区不仅支持软件开发,还为参与者提供建立联系和合作的机会。

1.3 有哪些开源协议

俗话说: “无规矩不成方圆”,开源也是如此。

在参与开源社区时,需要尊重社区红线,在使用开源项目和参与开源过程中,需要遵守对应的开源协议

开源许可证(Open Source License)大概有上百种,常见的开源协议大致有GNU、BSD、MIT、Mozilla、Apache和LGPL等,这里就不过多展开,可以和大模型聊聊。

二、选择开源

2.1 开源社区的类型与特点

随着开源文化的普及传播,开源已不再只局限于Code,对于选择开源除了Code项目类,还有社区类型:

  1. 项目型社区

聚焦特定开源项目,包括代码贡献和协作、集成测试、应用实践、用户反馈等核心功 能,大部分项目型社区由背后的机构或企业来资助或直接运营。

例如:Apache Doris

  1. 用户型社区

主要是开源爱好者自发形成的社区,以知识分享、经验交流和传播开源文化为目标。

例如:PowerData

  1. 服务型社区

具备开源代码、项目孵化、开源治理、媒体等多种服务功能的社区,其他垂直小众社区也在该社区平台构建自己的影响力。

例如:Gitee

  1. 开发者社区

将开发者凝聚在一起,赋能开发者、研发团队及科技企业在IT知识学 习、人才招聘、研发效能与协同管理等方面的高速成长与发展。

例如:CSDN

2.2 如何选择开源社区

关于如何相对正确地选择一个开源社区,可以参考如下几点:

  1. 社区活跃度

可以潜水洞察,社区是否有组织丰富的线下/线上活动,如Meetup、研讨会、技术分享会等,促进成员之间的面对面交流和合作。当然,水天水地的活跃也是活跃,只要不违反社区红线即可。

  1. 社区规模

成员数、新老成员比例是否合理。

  1. 社区治理

核心维护者是否正能量(傻狍点也可),社区委员会是否齐心,决策流程合理完善。不要加入后感觉自己像是身入了宫斗剧中,如果有此感,建议尽早脱身变为第三人视角,吃瓜何乐不为。

  1. 社区文化

了解社区的价值观和文化氛围,是否包容、开放、互助,积极向上的社区文化对于社区和参与者的长期发展至关重要。

2.3 如何选择开源项目

关于如何相对正确地选择一个开源项目,可以参考如下几点:

  1. 项目活跃度

是否有大量的贡献者积极地提交代码、解决问题、撰写文档等,对项目的贡献是持续且稳定的。

  1. 项目规模

成员数和贡献者数是否呈上升趋势,生态体系是否完善和健全。

  1. 项目治理

issue/pr是否有回应,发版效率是否可观,代码规范和质量是否有合理把控。

  1. 项目背景

了解项目的来源、技术栈、发展历程和维护团队等信息,有助于你选择合适的开源项目。

三、参与开源

3.1 开源社区的参与方式

开源社区的参与方式有很多,例如:

  1. 融入社区

参与社区讨论、活动策划和提供建设idea等,帮助社区正向发展。

  1. 提供场地/参与活动/赞助支持

当一个无商化背景纯开源的社区需要举办线下活动时,如果有场地支持或其它周边等赞助支持,犹如雪中送炭。而当社区举办活动时,社区成员积极参与其中,亦是社区发展的底气。

  1. 布道推广

通过博客、社交媒体等渠道宣传社区,吸引更多的用户和贡献者加入;就算是一次小小的转发,也是布道推广。

3.2 开源项目的参与方式

开源项目的参与方式有很多,例如:

  1. 代码贡献

最直接的方式,通过提交代码、修复bug、实现新功能等形式来直接参与项目的开发。

  1. 文档编写

大部分开源项目都会有对应的官方使用文档,如果发现文档中有错别字、逻辑描述有误或有想新增示例介绍等,可以提一个文档pr进行fix/new,利人利己,何乐不为。

  1. Bug测试与反馈

在开源项目使用过程中,如果发现有bug,可以提一个issue或通过其它渠道向社区反馈,或者直接/共同fix,共建共进。

  1. 问题总结与分享

对遇到的问题进行沉淀总结和分享,便于社区小伙伴遇到同类问题时可以快速找到答案。

  1. 布道推广

通过博客、社交媒体等渠道宣传项目,吸引更多的用户和贡献者加入。

四、Apache Doris 参与示例

4.1 Doris开源项目Step1

Apache Doris 有完善的官网、文档和 GitHub Readme,参与Apache Doris可以从查阅它们开始,对Doris有一个初步的了解。

4.2 Doris开源项目Step2

选择合适的建联方式,社区推荐的沟通模式:

  1. 邮件组

发邮件到社区 dev@doris.apache.org,进行沟通交流。

  1. 双周会

每两周会在腾讯会议上进行双周会线上互动,会议入口: https://meeting.tencent.com/dm/6iQBgkIhn5LO

  1. 社交平台

可以通过主流的一些社交平台进行交流:微信社群、论坛、知乎、
Twitter、Slack等。

4.3 Doris开源项目Step3

可以参考如下找到第一个贡献点:

  1. 文档贡献

如果发现Doris的官方文档中有错别字、逻辑描述有误或有想新增示例介绍等,可以提一个文档pr进行fix/new:

https://doris.apache.org/zh-CN/docs/get-starting/what-is-apache-doris/

  1. Good First Issue

可以通过此issue了解:[Good First Issue] Doris’ Future
https://github.com/apache/doris/issues/17176

  1. Bug 修复

在使用Doris过程中,如果发现有bug,可以提一个issue或通过其它渠道向社区反馈,或者直接/共同fix,共建共进。

4.4 Doris开源项目Step4

参与社区开发:

  1. 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

  1. 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

  1. Doris Improvement Proposals

Detailed design for major features:

https://cwiki.apache.org/confluence/display/DORIS/Doris+Improvement+Proposals

五、开源小结

开源传播了一种开放、协作和共享的文化,这些文化在技术领域之外也具有重要意义。随着这股文化的传播,开源也不仅限于Code了,更多的是一种开源开放的精神。

欢迎各位参与其中,共建共进

相关推荐

  1. 拥抱Linux,拥抱开源,拥抱未来

    2024-05-13 05:56:07       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-13 05:56:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-13 05:56:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-13 05:56:07       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-13 05:56:07       20 阅读

热门阅读

  1. conda 常用20个命令

    2024-05-13 05:56:07       15 阅读
  2. SQLite 命令

    2024-05-13 05:56:07       11 阅读
  3. Unix/Linux C语言 获取控制台窗口尺寸

    2024-05-13 05:56:07       10 阅读
  4. vue-router(路由)

    2024-05-13 05:56:07       11 阅读
  5. 【CV】计算机视觉是什么?

    2024-05-13 05:56:07       10 阅读
  6. 排序算法大全(附源码)

    2024-05-13 05:56:07       12 阅读
  7. 基于协同过滤算法的旅游推荐系统的设计

    2024-05-13 05:56:07       11 阅读
  8. C语言输出重定向

    2024-05-13 05:56:07       8 阅读