第一章 认识开源项目
一、什么是开源项目
开源项目是指公开可用的计算机源代码,其特性允许任何人都可以查看、修改和分发开源代码。开源项目的所有者不属于任何组织或个人。在遵守开源协议的条件下,开源产品可通过修改代码定制成属于自己的个性化产品。
因此,与单个公司或个人开发的软件相比,开源软件更便宜、更灵活。如今,开源软件已被公司和个人用户广泛使用。
二、开源项目的意义
1、增加知名度和使用量: 开源项目可以让更多人知道和使用,进而增加项目的知名度和使用量。
2、提高代码质量:开源项目需要接受有可能来自全球的开发者审核和参与,这样可以使得项目代码得到更多高质量的反复审查和改进
3、快速修复和更新:开源项目可以在社区的帮助下,快速修复和更新代码,更改未来开发计划和方向。
4、提高合作和学习意愿: 开发者可以通过参与开源项目,结识更多开发者,从中学习和分享经验。
5、可授权和可扩展性:开源项目可以允许其他开发者使用和拓展项目,由此可以进一步提高项目的质量和功能降低开发成本:开源项目可以让开发者进一步学习和拓展,从而提高开发的效率,进一步降低开发成本。实现双赢:他人使用你的项目降低开发成本,自己也能提高技术水平和知名度0
6、开源精神
三、闭源项目和开源项目的区别
1、所有者:闭源项目属于特定的组织或企业,而开源项目不属于某个组织或企业。
2、是否收费:闭源项目在使用前需根据软件规模和使用规模支付相应的费用,而开源项目是没有许可或使用费。
3、源码是否可见:闭源项目不能获取源码,而开源项目的源代码是公开的。
4、是否可定制:闭源项目由于不能获取源码,如需定制需向项目所有公司提交申请,并支付一定费用,而开源项目可以自己定制自己的功能。
5、对开发和使得的支持:闭源项目一般是由软件有属组织或企业的专门支持团队进行技术支持,因此响应速度、满意度等由此团队的规模和能力决定。而开源软件主要以社区、论坛、邮件等方式进行支持,由于所有使用此开源项目的人都可以成为此项目的支持者,因此使用量越大的开源项目所得到支持越大,如流行的Spring框架和Vue框架等都有很多支持。
6、安全性:开源软件有一个完整的社区来审查代码,这使得错误很快被发现并改正。在闭源代码中,软件分销商负责修复发现的错误。
四、开源项目的使用
1、合规性风险
开源项目并不意味着此项目可以随意使用,随意使用可能一不注意就会侵权。比如使用某个开源框架开发闭源软件,未获得开源许可而在商业项目中使用开源软件等。
开源项目也有著作权,而且绝大多数的开源项目,开源代码背后都有许可证。开源许可证是一种允许源代码、蓝图或设计在定义的条款和条件下被使用、修改和/或共享的计算机软件和其他产品的许可证。是一个在作者和使用者之间有法律效应和约束力的合同,类似于不可更改的制式合同,当你选用了开源项目/局部代码则默认为签署了这份合同。
由于目前经过OSI认证的开源许可证共有近100种。因此在使用开源项目用做商用前,一次要了解此开源项目背后的许可类型,以规避法律风险。
2、漏洞风险
任何软件都不可避免存在漏洞,但一般开源项目修复漏洞后不会提醒使用者去修复,更不会主动帮使用者修复,因此需要使用者经常关注社区,发现对应版本的补丁应及时修复。但大部分使用者不会去时常关注社区,因此可能会使此漏洞长期存在。
五、开源项目如何盈利
1、获取赞助
可以在项目官网或是社区设置赞助账号,如微信或支付宝等,如Eclipse等
2、广告
在开源版本中绑定广告,在下载或是使用前需要观看或阅读广告
3、体验版
免费提供受限的体验版本(社区版),可以通过支付一定的费用来获取完整版本(企业版)。比如MySql、Idea等
4、书籍和周边
可以围绕开源项目出版书籍,如Vue、Spring等,可以出版教程,如果是游戏可以出版攻略和参数修改教程,如果是一个社区非常活跃的项目,可以设计衬衫、马克杯等小商品。
5、服务
提供线上支持,对于此软件使用上的问题和功能改进可以收取相应的费用,比如dcloud的有偿问题解答。
6、软件外包和服务
可以接一些与此开源项目有关的外包项目,还可以接与此开源项目有关的培训
7、众筹和融资
六、开源项目的组成
1、人员
通常,一个开源项目包括以下人群:
◈ 创建者:创建项目的人
◈ 维护者:积极管理整个项目的人。通常,积极的贡献者就是最适合的维护者。
◈ 贡献者:为项目做贡献的人(像你一样的人!)。你需要准备可靠的文档、引导流程和他们使用你的项目取得成功所需的一切。
◈ 用户:使用这个项目的人,包括开发者和非技术客户
◈ 工作组:将贡献者分成特定领域的小组,专注于围绕特定主题领域(如文档、指引、测试、DevOps、代码审查、性能、研究等)的集合。但是你需确定是否需要他们,以及你的项目将来如何有逻辑地拆分。
◈ 赞助人:为项目提供资金支持的人。你必须提供足够的数据和有关你项目的信息,以便他们选择赞助你。
当然,你不必在你项目的起始阶段解决上面所有问题。然而,在早期阶段思考它们是很明智的,这样你就能打下正确的基础,确保未来的扩建项目能够站稳脚跟并取得成功。
2、软件
这是开源项目的核心成果,需要达到以下要求:
◈ 符合主题:只开发与项目主题有关的功能,不应该包含此外的其它功能
◈ 版本规则明确:使用此可以根据版本规则了解当前软件的状态
◈ 维护不同的版本:一个软件不会只有一个版本,随着贡献者代码不的断提交,软件的版本也会不断升级,但必须为使用旧版本的用户提供必须的支持和补丁的更新。
◈ 大版本不应有明显Bug和漏洞,在发布版本之前应该提供内测、公测等版本。
3、文档
开源项目通常包括下列文档,通常为纯文本或 markdown 格式:
◈ 许可证(License
):这份法律文件解释了如何以及在何种程度上可以自由使用、修改和共享本项目。每个源码网站上有 相应的的许可证列表。如果没有明确的许可证,你的项目在法律上就不是开源的!
◈ 行为准则:该文件概述了任何决定以任何方式参与项目的人的规则、规范、可接受做法和责任(包括当有人违反任何规则时会发生什么)。
◈ 自述文件(README
):这个文件向新用户介绍你的项目。在很多 Git 托管网站上,比如 Gitee,自述文件会显示在仓库的初始文件列表下。这里通常会提供文档,以及其他必要文档的链接。
◈ 文档(Documentation
):这是一个包含所有本项目文件资源的文件或目录,包括指南、API 参考、教程等。
◈ 贡献指南(Contributing
):包含一份说明如何为项目做出贡献的文件,包括安装指南、配置等。
◈ 安全(Security
):包括一个解释如何提交漏洞报告或安全问题的文件。
4、官网和社区
大致包括:
◈ 议题或错误报告:用户可以报告错误的地方。该页面还为开发人员提供了一个地方,让他们可以分配自己的任务来修复一个或多个错误。
◈ 拉取或合并请求:提供功能增强建议和错误解决方案的地方。这些补丁可以由任何人创建,由维护者审核,然后合并到项目代码中。
◈ 讨论:维护者、贡献者和用户讨论开源项目的地方。它可以是一个专门的网站,也可以是协作编码网站中的一个论坛。
◈ 在线体验:提供在线体验版本,用户可以通过有限功能的体验大致了解此软件的功能和结构
许多项目还通过在线聊天的形式为社区成员之间的对话和互动提供交流渠道。
5、许可证
opensource.com 也许是创建开源项前需要考虑的最简单但也是最重要的标准。许可证定义了允许使用、修改和共享项目源代码和其他组件的条款和条件。
七、开源项目的演示
1、演示地址
地址:https://gitee.com/ossbar/

2、查看项目信息
选择第一个开源项目:“若依-RuoYi-AntDesign-AiDex Sharp 快速开发平台”,点击进入
3、获得最新版本
在右侧点击“克隆/下载”,在展开的菜单中点击“下载ZIP”

4、查看自述文件内容(readme)
1)点击顶部的“代码”,返回代码页

2)向下滚动页面

5、在线体验
在自述文件左侧标签中选择“在线体验”,点击在线体验地址可进入项目官网

6、系统文档
在自述文件左侧标签中找到“系统在线文档”,可通过右侧提供的链接进入到对应的文档

7、许可协议
此项目使用的是"GPL-3.0"许可协议

8、许可证补充说明和贡献参与方式
在自述文件左侧标签的最下方两条分别定义了“许可补充说明”和“贡献参与方式”

八、注册Gitee账号和创建仓库
1、注册账号
1)在Gitee网站的右上角点击“注册”

2)在注册页面输入账号名、手机号、密码,然后点击“发送验证码”,

3)在发送验证码之前需输入“机器验证”,把上方的字母抄写到下方的输入框中,然后点击“验证”

4)当手机揽收到验证码后,在“验证码”输入框中输入接收到的验证码,然后勾选协议,点击“立即注册”,至此Gitee账号注册成功。

2、创建仓库
1)在Gitee右侧上方最后一个图标上悬浮,在展开的菜单中点击“设置”

2、在打开的设置页的左侧导航向下找到“仓库空间信息”,点击进入

3、在上方右侧,点击“新建仓库”

4、输入仓库的名称,路径会自动生成(如果修改,路径建议不要太长且只包含小字字母和“-”两种符号),然后输入仓库介绍,最后点击“创建”完成项目的创建

3、添加开发人员
1)在仓库首页上方的导航中点击最后一个菜单“管理”

2)在“管理”页面的左侧点击“仓库成员管理”——“开发者”,在右侧上方点击“添加仓库成员”,在展开的菜单中点击“邀请用户”

3)在此页面中可以选择合适的邀请方式。

4、基于其它项目创建自己的项目分支(克隆、Fork)
1)进入项目:https://gitee.com/ossbar/aidex-sharp
2)在右侧点击“Fork”

3)在弹出的对话框中选择目标空间,点击“确认”

4)此项目已经被克隆到自己的仓库中
