热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

浅谈开源之道

最近参加了开放原子的开源教育认证讲师21秋季班,系统的学习了一下开源之道,感悟还是颇深的,刚好在第三节课(《开源战略规划和创

最近参加了开放原子的开源教育认证讲师21秋季班,系统的学习了一下开源之道,感悟还是颇深的,刚好在第三节课(《开源战略规划和创新》)上,针对"为什么要系统学习和理解开源之道,对企业,个人和组织参与开源项目有哪些指导意义?"做了一个小的演讲,然后越琢磨越有意思,希望系统的和大家说说为什么要学习开源之道。(文末有演讲全稿,以及下期分享内容预告)

下面是我的文章大纲,从开源认知,开源社区,开源回馈等三个大方向进行阐述。

图片

感谢开放原子郭皓老师精彩的课程,本文PPT大部分采用课程文档。

开源认知

我们对开源的认知是什么?在学习之前,我真的认为,公开源代码,就是开源了。但这只是冰山一角。

冰山一角

图片

除了开放源代码以外,我们还需要考虑:加入或新建社区、吸引用户、指引参与者、增长贡献者、开源产品策略、衡量成功等方面。

  • 加入或新建社区:一个良好的社区,更容易吸引大家交流、发展产品,现在各大厂商,在做产品选型的时候,社区活跃度也是一个重要的衡量指标。一个活跃的社区,使用者会得到更积极的服务,流传的口碑也会更佳。

  • 吸引用户:让用户了解产品,并且使用产品,也是一件非常有意思的挑战。

  • 指引参与者:完善新手引导,和一个友善活跃的社区,也能帮助吸引用户,留住用户。

  • 增长贡献者:这个可能是开源最大的魅力了,全世界的开发者资源,团结在一起,构建一个产品,发挥聪明才智。

  • 开源产品策略:定义一个合适的产品发展策略,让广大开发者和使用者了解软件发展的路线,也是非常重要的。

  • 衡量成功:一个可量化的成功标准,不仅可以增加贡献者信心,也可以增加使用者和投资者的信息。


价值观

什么是价值观? 价值观是基于人的一定的思维感官之上而作出的认知、理解、判断或抉择,也就是人认定事物、辩定是非的一种思维或取向,从而体现出人、事、物一定的价值或作用。

谈到开源的价值观,我们有必要将开源软件和开源社区的价值观分开的,毕竟他们不是同一个事物,服务的范围也不一样。

开源软件的价值观


  1. 奉献精神:开源技术本身就像一个巨大的知识宝库,这是无数前人风险积累的成果,我们则需要传承这种风险精神,做出我们能做的贡献。

  2. 勇敢精神:开源技术贡献者将自己的创新成果公开时,相应的技术可能会被剽窃,也可能会被众多同行研究,比较,挑剔甚至嘲笑,这需要贡献者承担极大的压力,彰显了其勇敢的精神。

  3. 开放精神:不分国界、种族、信仰的享用开源只是宝库。

  4. 追求持续进步精神:初始贡献者研发出成果,开放共享,后续人员持续改进、创新,继续开放共享的良性循环,反映了人类持续进步的精神。

  5. 公平价值回报精神:开源技术产品厂商主张以提供劳动服务的方式收取服务费用,而不是通过对软件加密、复制、销售产品的 方式获取收入和利润,体现了按照劳动获得价值回报的价值观。

  6. 感恩意思:我们任何人无偿的享用开源这个知识宝库时,我们当怀有感恩之心。

开源社区的价值观


  1. 开放:开放性是开源社区最明显的价值,它具有很多层次的透明度。开放意味着任何项目,无论大小,都可以与任何其他项目自由竞争, 一旦使用它,代码必须保持开放状态,对所 有人(企业,个人和政府)开放。

  2. 透明:透明度是一个价值不菲的价值。开源代码 本质上是透明的,但是透明性超越了编程语言。透明度渗透到各个级别的开源社区中不仅激发了全球开发人员之间以及更大的社区与其领导者之间的信任,而且这是必需的。透明度可以促进创新,敏捷性和参与性,这 是成功发展的基本要素。

  3. 共识:透明度是一个价值不菲的价值。开源代码 本质上是透明的,但是透明性超越了编程语 言。透明度渗透到各个级别的开源社区中- 不仅激发了全球开发人员之间以及更大的社 区与其领导者之间的信任,而且这是必需的。透明度可以促进创新,敏捷性和参与性,这 是成功发展的基本要素。

开源的价值主张


  1. 开放的价值:闭源开发发布前不允许用户访问代码,用户无法参与到开发过程中,但开源软 件允许公司在投入资金 之前访问代码,调整代 码的能力,根据您的要 求进行定制

  2. 创新的价值:持续使用开源软件有助 于创新,OSS 具有快速 上市时间、易于敏捷开 发和互操作性等特性, 有助于交付没有技术故 障的高质量软件。

  3. 灵活的价值:OSS提供了选择的自由。您无需注册每用户计划或年度计划,使用 OSS 的机会是无限的。在全球范围内强大的社区支 持下,OSS 标准每天都在改进,您可以免费为您的客户扩展您的产品组合。专有软件可能不存在这样的机会。

  4. 可扩展性的价值:对于任何软件,可扩展 性是一个参数,它表明 产品/服务的健康状况随 着数量/大小或功能的增 加而增加。事实上开源 提供了最出色的扩展能 力。


社区运营


导师文化

一个友善的可持续的社区,需要反复的帮助新人,并让他们成为持续的贡献者。基于这个理念,导师制是非常契合的选择,经验丰富的社区成员,协助有抱负的新人,持续成长并最终成为贡献者。

很荣幸,我现在加入了开放原子的开源讲师行列,希望未来,我能成为一名开源布道者。

社区体系堆栈

开源社区体系堆栈有非常值得深入讨论的内容,这里就不展开讨论了,后续,如果有机会,非常想和大家分享一下,开源项目办公室,这个话题。


基金会

现在我们耳熟能详的三大基金会,apache、linux、eclipse 其实他们秉承的开源之道也是不尽相同的

  • apache:共识驱动的社区治理方法

  • linux:可持续的开源生态发展

  • eclipse:先进的软件工程方法

图片

说到开源软件基金会,那么我们就不得不说说他们的作用

  1. 创建项目参与的治理结构:目标是包容而不是排斥,治理结构 使加入对话和根据优点以各种方式参与变得容易,它还鼓励和 发展提交者(可以提交代码更改的开发人员);

  2. 组织和发展社区,并对社区成员负责;

    为软件的开发目标制定战略,推动社区的健康发展和成长。

而他们的重要性主要表现在:

  1. 创建项目参与的治理结构:目标是包容而不是排斥,治理结构 使加入对话和根据优点以各种方式参与变得容易,它还鼓励和 发展提交者(可以提交代码更改的开发人员);

  2. 组织和发展社区,并对社区成员负责;

  3. 为软件的开发目标制定战略,推动社区的健康发展和成长。

图片


上游社区优先

说到社区发展,其实我最想说的,就是这部分了, 上游社区优先,这也是对开源之道的直观体现。上游具有风险和勇敢精神的进行了开源,作为下游必须感恩,并且遵循公平价值回报。这样才可以让社区真正的健康,良性发展。

前些时日闹的沸沸扬扬的 Doris 和 StarRocks 事件中,就产生了社区分裂,如果我们能加强认识和学习,希望能减少这种事情的发生。


开源回馈


免费的庞然大物

随着软件、互联网行业的高速发展,我们的开源也从R.Stallman最开始倡导的哲学运动,历经早期商业化,代码商业化到现在的开源商业化。而在这几十年里,成长了一批开源企业,以redhat为例,开源公司已经可以达到数百亿市值了。

市场估值

根据marketsandmarkets预测,全球开源服务市场规模预计将以18.2%的符合增长率增长,到206年将从2021年的217亿美元增至500亿美元,所以这里充满了机会。

商业模式演进

开源软件公司的商业模式,大概可以分成服务、支持、集成、订阅、开放核心、托管、云、SaaS等演进阶段。在目前我国的开源生态,更多的是在从事开放核心的工作,而我个人认为 SaaS 未来会迎来井喷。

而基于不同的授权协议,我们也有不同的货币化策略

  1. 服务货币化

  2. 专有功能货币化

  3. 托管/SaaS货币化

  4. 捆绑和编排服务

  5. 著作权豁免许可证的获取货币化

图片

图片

至此,关于开源之道的部分阐述完毕,如果大家喜欢,请转发,评论。本系列的下一篇,将会介绍《开源的商业实践与创新》

以下是2021-10-09演讲的全部文字稿:

    首先感谢郭老师,以及前面几位老师的精彩分享,受益颇多。我是来自第六组的Jacky,接下来我将阐述一下,我对“为什么要系统学习和理解开源之道,对企业,个人和组织参与开源项目有哪些指导意义?”的一点理解

    在我学习开源之道以前,我理解的开源就是“开放源码”,再加上一些CI工具,将源码再打包,发布到中央仓库,那么我就完成了开源工作。但是事实上,这只是冰山一角,在开源的道路上,我们还有很多工作要做,比如:创建社区,吸引用户,开源产品策略,增长贡献者,指引参与者,以及指定衡量成功的标准,都是开源要做的事,所以,我们需要向大家普及这些观念。

    另外一点,也是今晚郭老师着重强调的“上游社区优先,开源软件创新的先”。就在前不久,闹的沸沸扬扬的国内Doris社区的分裂,以及前两年国外presto社区的分裂,我今天不想讨论谁对谁错的问题,而是想说,如果我们的开发者,都更尊重上游,更懂得感恩和开源精神,也许,这一切本可以是避免的。

    然后,开源也不光是为爱发电,这里有我们热爱的产品,社区以及事业。当然这里也同样被资本市场看重,根据marketsandmarkets预测,全球开源服务市场规模预计将以18.2%的符合增长率增长,到206年将从2021年的217亿美元增至500亿美元,所以这里充满了机会。

    最后,在学习的过程中,我还有2个小问题,希望和大家讨论

  • 如何转型成开源公司?开源的步骤?如何定义将哪个产品 或是 模块开源?

  • 如何培养社区的“第一桶用户

    我的分享到此结束,感谢各位老师,谢谢。

图片

本作品采用知识共享署名 4.0 国际许可协议进行许可。

历史文章导读:

  • 如何用Flink整合hudi,构架沧湖一体化解决方案

  • 云原生初体验:在k8s上部署springboot应用

  • 手动实现一门图灵完备的编程语言——Brainfuck

  • 10分钟入门响应式:Springboot整合kafka实现reactive

  • 基于Calcite自定义SQL解析器

  • 基于JDBC实现VPD:SQL解析篇

  • 如何成为一个成功的首席数据官

  • 基于Win10单机部署kubernetes应用

  • 浅谈基于JDBC实现虚拟专用数据库(VPD)



你好,我是 +7 ,一个大数据领域的硬核原创作者。

做过后端架构、数据库中间件、数据平台&架构、产品。

专注大数据领域,数据库领域实时动态&技术提升&个人成长&职场进阶,欢迎关注。

麒思妙想

麒思妙想

主人是数据科学家,已经一个多礼拜了。这里除了程序,还有一些美食和影评。期待您的支持!

98篇原创内容

公众号

欢迎加入读者群,和小伙伴们一起玩耍

图片

如果文件对您有点帮助,请关注、分享,帮助更多人~非常感谢

图片


推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 经过半年的精心整理,我们汇总了当前市场上最全面的Android面试题解析,为移动开发人员的晋升和加薪提供了宝贵的参考资料。本书详细涵盖了从基础到高级的各类面试题,帮助读者全面提升技术实力和面试表现。章节目录包括:- 第一章:Android基础面试题- 第二章:... ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • PHP与MySQL的Web应用开发技术深入解析
    PHP与MySQL的Web应用开发技术深入解析 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
author-avatar
潮人_徐达妈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有