走进开源,拥抱开源

news2024/11/15 12:48:11

走进开源,拥抱开源

  • 一、开源文化
    • 1.1 什么是开源
    • 1.2 为什么要开源
    • 1.3 有哪些开源协议
  • 二、选择开源
    • 2.1 开源社区的类型与特点
    • 2.2 如何选择开源社区
    • 2.3 如何选择开源项目
  • 三、参与开源
    • 3.1 开源社区的参与方式
    • 3.2 开源项目的参与方式
  • 四、Apache Doris 参与示例
    • 4.1 Doris开源项目Step1
    • 4.2 Doris开源项目Step2
    • 4.3 Doris开源项目Step3
    • 4.4 Doris开源项目Step4
  • 五、开源小结

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

一、开源文化

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了,更多的是一种开源开放的精神。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1679588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

随笔:棋友们

我是在小学二年级学会中国象棋的,准确说,是学会象棋的下棋规则的,师傅是二舅。我最早的对手就是同学波仔。波仔比我略早学会象棋,总用连珠炮欺负我,开局几步棋就把我将死。我不知道怎么破解。轮到我先走时,…

降Compose十八掌之『亢龙有悔』

公众号「稀有猿诉」 原文链接 降Compose十八掌之『亢龙有悔』 Jetpack Compose是新一代的声明式的UI开发框架,由Google在2019年推出,最初是作为Android的新式UI开发框架,但它本质是一个声明式UI开发框架,并不受制于底层的平…

机器人非线性系统反馈线性化与解耦

机器人非线性系统的反馈线性化和解耦是控制理论中的两个重要概念,它们分别用于简化系统分析和设计过程,提高控制系统的性能。 首先,反馈线性化是一种将非线性系统转化为线性系统的技术。在机器人控制中,由于机器人本身是一个强耦…

每日一日 kotori和气球

kotori和气球 (nowcoder.com) 题目描述,就是只要相邻的气球不相同即可, 解题思路 使用高中的排列组合:第一个位置 可以填n种情况 其次后推不可与前一个相同所以可以 填n -1中情况,结果相乘即可 可以使用bigInteger实现 或者说…

[Kubernetes] kube-proxy 详解

文章目录 1.kube-proxy概述2.userspace模式3.iptables模式4.ipvs模式 1.kube-proxy概述 kube-proxy组件是用来实现service的请求转发,具体实现方式是kube-proxy运行在每个node上,通过watch监听API Server 中service资源的create,update&…

Spring 各版本发布时间与区别

版本版本特性Spring Framework 1.01. 所有代码都在一个项目中 2. 支持核心功能IoC、AOP 3. 内置支持Hibernate、iBatis等第三方框架 4. 对第三方技术简单封装。如:JDBC、Mail、事务等 5. 只支持XML配置方式。6.主要通过 XML 配置文件来管理对象和依赖关系&#xff0…

【2024华为HCIP831 | 高级网络工程师之路】刷题日记(18)

个人名片:🪪 🐼作者简介:一名大三在校生,喜欢AI编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&a…

Kubernetes进阶对象Deployment、DaemonSet、Service

Deployment Pod 在 YAML 里使用“containers”就可以任意编排容器,而且还有一个“restartPolicy”字段,默认值就是 Always,可以监控 Pod 里容器的状态,一旦发生异常,就会自动重启容器。 不过,“restartPo…

达梦(DM) SQL数据及字符串操作

达梦DM SQL数据及字符串操作 数据操作字符串操作 这里继续讲解DM数据库的操作,主要涉及插入、更新、删除操作。 数据操作 插入数据,不指定具体列的话就需要插入除自增列外的其他列,当然自增列也可以直接指定插入 INSERT INTO SYS_USER VALU…

2024最新Kali Linux安装教程(非常详细)从零基础入门到精通(附安装包)!

什么是Kali Linux? Kali Linux是一个高级渗透测试和安全审计Linux发行版,其功能非常强大,能够进行信息取证、渗透测试、攻击WPA / WPA2保护的无线网络、离线破解哈希密码、将android、Java、C编写的程序反编译成代码等等,是黑客的…

iOS ------ 多线程基础

一,进程和线程 1,进程 定义: 进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专有的且受保护的内存进程是系统进行资源分配和调度的一个独立单位 补充:iOS系统是相对封闭的系统&a…

cdn引入vue的项目嵌入vue组件——http-vue-loader 的使用——技能提升

最近在写MVC的后台,看到全是jq的写法,但是对于用惯了vue的我,真是让我无从下手。。。 vue的双向绑定真的很好用。。。 为了能够在cdn引入的项目中嵌入vue组件,则可以使用http-vue-loader了 步骤1:下载http-vue-loader…

电子邮箱是什么?付费电子邮箱和免费电子邮箱有什么区别?

注册电子邮箱前,有付费电子邮箱和免费电子邮箱两类选择。付费的电子邮箱和免费的电子邮箱有什么区别呢?区别主要在于存储空间、功能丰富度和售后服务等方面,本文将为您详细介绍。 一、电子邮箱是什么? 电子邮箱就是线上的邮局&a…

详解绝对路径和相对路径的区别

绝对路径和相对路径是用于描述文件或目录在文件系统中位置的两种不同方式。 绝对路径(Absolute Path)是从文件系统的根目录开始的完整路径,可以唯一地确定一个文件或目录的位置。在不同的操作系统中,根目录的表示方式可能略有不同…

SQL注入漏洞常用绕过方法

SQL注入漏洞 漏洞描述 Web 程序代码中对于用户提交的参数未做过滤就直接放到 SQL 语句中执行,导致参数中的特殊字符打破了原有的SQL 语句逻辑,黑客可以利用该漏洞执行任意 SQL 语句,如查询数据、下载数据、写入webshell 、执行系统命令以及…

ADS FEM 仿真设置

1、EM Simulator 选择FEM。 2、在layout界面打开的EM功能,这里不需要操作。 3、Partitioning 不需要操作。 4、没有叠层的话需要新建,过孔可以在叠层处右键添加。 5、端口需要设置GND layer。 6、设置仿真频率。 7、Output plan。 8、Options 设置 介质…

【企业宣传片】拍摄思维提升,专业影视质感核心揭密,一课搞定

课程下载:【企业宣传片】拍摄-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载:关注我。 课程介绍 大量案例分析宣传片拍摄的痛点要点 根据案例告诉你解决方案,讲透概念 改变你对企业宣传片的思维层级与认知 归纳总结对比不同案…

【C -> Cpp】由C迈向Cpp (6):静态、友元和内部类

标题:【C -> Cpp】由C迈向Cpp (6):静态、友元和内部类 水墨不写bug (图片来源于网络) 目录 (一)静态成员 (二)友元 (三&#xff09…

GDPU 竞赛技能实践 天码行空 期末小测

1. 除法(原题) 👨‍🏫 实验二:1.简单枚举 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij n的表达式,其中a~j恰好为数字0~9的一个排列(可以有前导0&a…

【三家飞机制造商】

1.Boeing 波音 F-15战机 B-52轰炸机 阿帕奇攻击直升机 E-3 2 .Lockheed Martin 洛克希德马丁 F35 F22 F16 F117 C130 U2 3 Raytheon 雷神