当前位置: 主页 > 建站知识 > 软件开发

借助开源项目,学习软件开发-学习开发安卓软件

发布时间:2023-02-12 11:09   浏览次数:次   作者:佚名

借助开源项目,学习软件开发_借助开源项目,学习软件开发_学习开发安卓软件

互联网IT技术发展至今,广为流传的架构图不计其数,但能称得上整个互联网底层基石的可能只有唯一的“LAMP架构”——Linux操作系统、Apache服务器、MySQL数据库、PHP /Perl/Python 等编程语言。

这种架构的特点是——开源。 开源技术吞噬了闭源软件,成为商业软件的基石。 由此衍生的开源社区,缩短了世界的边界和发展的边界,促进了全球软件的发展和创新。 近年来,随着开源技术的快速发展,越来越多的企业、组织和开发者参与开源。 与此同时,开源治理逐渐进入人们的视野,成为开源领域的热门话题。

12月18日,由腾讯云TVP与腾远俱乐部联合主办的TVP开源闭门会正式召开。 本期主题聚焦开源内部实践:开源治理。 内心世界的你我探索开源“内功法”。

国内外主要厂商内部开源实践

会议伊始,我们邀请了开放原子开源基金会TOC副主席、腾讯云TVP、腾远会导师谭忠义先生做了题为“Inner Soure: Practice of Large Enterprises in Home and Abstract”,为参会者,从内部开源的定义出发; 起源、利益和困难; 国内外情况; 大厂的做法等,简单解构了内部开源的前世今生。

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

什么是内部开源?

谭老师说,内部开源是指从开源社区的软件开发中吸取经验,应用到公司内部软件开发团队中的一种软件开放模式。 简单来说,就是对内开放代码,接受外部部门的贡献。 用国际内源基金会主席的话说,就是在内部践行“Apache Way”。 谭总用一个通俗易懂的例子解释了内部开源的发生:

A团队使用了B团队的一个API服务,现在A有新的需求,B团队做了排程,但是没有达到A团队的预期。 现在 A 队有以下选择:

1.等待

2.自己做

3、找上级领导协调

4.内部开源

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

在这样的场景下,内部开源无疑成为最理想的选择。

内部开源的起源

事实上,内部开源并不是什么新鲜事物。 早在2000年,就有初步形式的探索。 世界著名的开源活动家 Tim O'Reilly 于 1999 年创立了咨询公司 CollabNet,为许多传统公司提供开源工具和咨询服务。 一个最典型的案例就是为惠普做内部开源咨询,将分布在多个惠普部门的120个打印机驱动软件通过内部开源最终减少到10个。 这就是内部开源的由来,但是由于当时整个开源社区还没有蓬勃发展,所以内部开源逐渐沉寂下来。

到了 2015 年,另一位开源专家 Danese Cooper 的出现,让内部开源重振旗鼓。 2015 年,Danese Cooper 被 PayPal 聘用,负责公司整体的开源事务。 她推动了许多开源措施,其中之一就是内部开源。 后来,她还领导成立了 InnerSource Commons 开源社区,后来成为国际内部开源基金会,致力于推动内部开源的普及。 今年已经7年了。

2021年的当下,又到了内部开源的时候了! 无论是微软、谷歌、IBM、NASA等国际公司/组织,还是以腾讯、华为、百度为代表的国内一线厂商,都在内部努力开源。

具体来说,内部开源的好处是:

1.提高代码质量

2. 提高人的能力

3.提高员工满意度

4.打破部门壁垒

5.减少重复造轮子

6. 激励创新

此外,在很多企业中,内部开源也成为外部开源的孵化器,也可以与DevOps文化相互促进,打造更加开放、透明、协作的研发文化。

内部开源虽然精彩,但也存在着各种各样的问题。 谭总总结了以下亟待解决的问题:

1. 普遍害怕改变

2.“不是这里发明的”恐惧症

3. 认为外部团队技能不够

4.不愿意或缺乏知识成为导师

5、中层管理冲突

国内外主要厂商内部开源实践

分享的最后,谭老师向我们介绍了包括微软、谷歌、博世、华为、腾讯、百度等各大公司的内部开源实践,每个公司的内部开源实践起点不同,推进步骤也不同,但他们都通过内部开源营造良性的研发文化,促进产品和技术创新,减少重复造轮子,提高效率。

借助开源项目,学习软件开发_借助开源项目,学习软件开发_学习开发安卓软件

谭老师最后总结,要推动内部开源,首先要获得CTO级领导的支持,同时寻求内部工程师社区的支持,进而从单一项目发展到BU/BG,最终形成完善的内部开源文化。 只有这样,内部的开源文化才能真正得以沉淀和延续。

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

腾讯开源治理实践

腾讯开源办公室执行主任、腾讯技术委员会委员、腾远协会导师徐勇先生做了题为《腾讯开源治理实践》的主题演讲,系统介绍了腾讯在开源治理方面的系统思考和全球化. 定向练习。

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

推动开源创新发展的三大力量

徐老师首先分析了开源创新发展的时代背景。 这背后的驱动力来自于三种力量:政府、开源组织和企业。

1、政府在顶层设计方面,制定开源创新生态发展的政策法规,并进行引导和牵引;

2、开源组织,一个是开源基金会,如Apache、Linux Foundation; 另一种是聚集大多数开源项目托管形成的开源社区,如GitHub;

3、企业,无论是创新开源技术的出现,还是业务的大规模应用和不断进步,都离不开企业。 一类是谷歌、腾讯、华为等科技公司,它们是开源最大的受益者和贡献者; 另一类是开源软件供应商,其商业模式是为开源项目提供核心服务,例如 Red Hat。

学习开发安卓软件_借助开源项目,学习软件开发_借助开源项目,学习软件开发

而在这其中,企业的作用至关重要。 徐总以云计算产业的蓬勃发展为例,分析了背后的原因。

随着云计算和云原生的发展,下图所示的云开源生态在众多科技公司、开源软件厂商、基金会的博弈过程中逐渐形成,并将随着时间的推移不断演进和变化。

学习开发安卓软件_借助开源项目,学习软件开发_借助开源项目,学习软件开发

可以看到,从底层操作系统,到IaaS、PaaS,再到云原生,每个细分领域都衍生出不少顶级开源项目。 随着技术公司和软件厂商的大量使用和快速推广,并通过自身的不断迭代进步,形成了事实上的行业标准,如Hadoop、K8s。 同时,企业也成为开源软件的重要贡献者。 许多开源项目最初诞生于企业内部。 比如Hadoop起源于Yahoo,K8s起源于Google。 企业既是开源技术最大的用户,也是开源技术最大的贡献者。

腾讯开源发展历程

徐老师为参会人员梳理了腾讯在开源领域的十年发展历程。 从2010年至今,腾讯的业务发展得益于开源技术,同时也回馈了开源社区。 这其中的关键节点是腾讯在2018年的“930”改革,将开源协作纳入改革战略,使得开源创新在腾讯更加重要。 此后,腾讯技术委员会的成立,“开源、协作、成长在云上”的新代码文化的诞生,腾讯对外开源管理办公室的成立等,都引起了腾讯的开源引起公司内外的高度关注。

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

截至目前,腾讯已成为全球开源贡献前十的公司之一,涵盖人工智能、大数据、云原生、移动开发、Web开发等五大技术领域。 项目借助开源项目,学习软件开发,开源贡献者人数超过2000人,在国内外众多主流开源基金会中发挥着重要作用。

借助开源项目,学习软件开发_借助开源项目,学习软件开发_学习开发安卓软件

腾讯开源的新变化

徐总表示,2021年腾讯开源有四个非常明显的变化:

1. 开源协作常态化

2、开源技术核心化

3. 开源贡献的多元化

4. 开源人才年轻化

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

徐老师分析,腾讯的开源成就可以归功于930改革以来的顶层设计和自上而下的推动,使得腾讯的开源治理形成了由内到外、由外到内的双向流动借助开源项目,学习软件开发,内部开源与外部开源相辅相成的良性循环。

1、内部开源、内部循环,通过内部代码开源、开源协同,减少重复投入,提高研发效率,降低运营成本。 通过“开源内循环”,将孵化出来的菜鸟项目和优秀的毕业生开源项目输出到外部开源社区。

2、对外开源、对外流通,进一步以产品、社区、商业的形式创造社会价值和商业价值,促进技术发展和技术创新,提升研发质量,降本增效。 通过“开源外循环”,引进优秀的外部开源项目,通过外部新鲜血液促进内部技术的不断创新。

在这个过程中,形成了腾讯在组织、工程、文化、合规四个方面对开源治理的深入实践。 积蓄力量积成江河,最终腾讯的开源实现了从量变到质变的历史性转折。 关注社区治理和生态建设。

借助开源项目,学习软件开发_借助开源项目,学习软件开发_学习开发安卓软件

在腾讯“科技向善”的使命和愿景的感召下,腾讯开元也在探索和尝试更大的社会价值和意义。 力量。 今年,腾讯开源在开源人才培养方面也做出了一些探索和实践。

学习开发安卓软件_借助开源项目,学习软件开发_借助开源项目,学习软件开发

Apache基金会项目从孵化到顶层毕业

Apache Software Foundation Member、ASF IPMC Member、腾讯云TVP、腾远协会导师郭伟先生从开源软件基金会的角度做了题为“Apache Foundation Projects From Incubation to Top-level Graduation”的主题演讲。 与会者带来了不一样的体验。

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

开源项目的初衷和初衷

郭老师说对待开源的初衷和初心,其实是态度问题,是第一步。 回顾以往的软件开发模式,不管是瀑布式开发还是敏捷开发,都是从需求出发,到产品定义、技术开发,再回到用户需求。 开源是下一代软件开发的核心。 从社区出发,用户既可以是请求者,也可以是实践者,同时帮助更多的人使用它,打破软件开发的界限。 基于这个角度,郭总指出,开源的初衷是让大家在全球范围内不去重新发明轮子,汇聚全球顶尖智慧,打破技术边界,让全球技术走向同一个平面.

然而,开源终究不是慈善。 初心决定你能走多远; 初衷决定了你能否开始,尽管结果可能与初衷不同。 郭老师总结道,做开源的初衷不外乎以下几点:

1.炫技

2、获得感

3.联合问题解决

4、技术影响

5、科技品牌

6. 商业

7. 关键绩效指标

“只要初心够高,初心是什么无所谓,因为项目启动后,你会不断打磨。无论哪种方式,只要你愿意拥抱开放源,我觉得值得鼓励。”

如何定义一个好的开源项目

郭先生总结了定义一个优秀开源项目的四个关键因素:

1、定位:一句话说明你的开源项目是什么,痛点明确,边界清晰;

2、产品:产品要有自己的调性,要像“火锅”一样开源;

3、团队:以核心团队为驱动,吸纳社区成员,保持团队对开源的理解力和应变能力;

4.技术:专注于架构设计,不要执着于性能,专注于创新和社区。

学习开发安卓软件_借助开源项目,学习软件开发_借助开源项目,学习软件开发

由此引发了一场关于开源创新源头的讨论。 郭老师说,创新来自多方面。 有人认为技术专家会是最重要的输出,但实际上用户反馈、社区内的开发者、社区外的专家都是创新。 开源之源,开源,调动头脑风暴和团队合作的力量。 再者,中高级社区用户和贡献者的力量远大于1-2个技术专家的力量,否则根社区本身就会陷入不稳定的境地。

因此,一个健康的开源生态系统显得尤为关键。 开源基金会为开源项目提供了大量支持。 第一,有足够的专业导师帮你梳理开源项目。 其次,第三方中立的态度有助于您的开源项目真正全球化。 三是提供生态内的合作与支持。 Connections,比如多个项目之间的联合Meetup,相互支持,相互发现,相互帮助。

进入Apache孵化器的过程

Apache 基金会的孵化过程看似简单。 从提案到讨论再到投票只有三个步骤。 项目毕业时,也会提出Discussion,由全球Apache Members投票决定是否毕业。 然而,在这个看似简单的过程背后,每一步都可能是很多开源项目最难跨越的一道坎。

借助开源项目,学习软件开发_借助开源项目,学习软件开发_学习开发安卓软件

郭老师指出,进入孵化器最重要的三件事是:

1、开源项目(定位、调性、团队、技术)

2.软件所有权(包括公司SGA、代码状态)

3. Apache 的导师和冠军

而这也侧重于 Apache 导师如何看待你的开源项目。 这背后的整体逻辑与投资者的逻辑相似。 导师投入的不是金钱,而是时间。 个人喜好和资源不同,依据可能不同。 郭老师以自己的判断为例。 他个人最看重这几个方面:

一、团队

2.产品本身的定位,现状

三、开源的初衷和初衷

一个有潜力的开源项目,进入Apache孵化器会遇到很多困难。 首先要解决的是找到足够的 Apache Member 背书; 二是明确软件的权属,是属于个人还是公司; 长期支持(CCLA); 最后,项目名称要求全球唯一。

迈向顶级项目 - Apache Way

“Community over code”,community over code是最著名的Apache Way。 但实际上,除此之外,Apache Way 还有六个关键特性:

1. 精英治理

2. 同伴社区

3. 共识决策

4.开放式沟通

五、责任监督

6. 供应商中立

学习开发安卓软件_借助开源项目,学习软件开发_借助开源项目,学习软件开发

很多开源项目一般都有“用户运营”的角色或功能,但郭老师个人认为,优秀的开源产品不需要运营,只是说教就够了。 布道的方式也可以概括为两种,一种是以DolphinScheduler为代表的“农村包围城市”模式,另一种是以ClickHouse为代表的“城市辐射农村”模式。

对于开源项目,开发者的“运维”工作尤为重要。 首先,你需要让外部开发者成为你的产品用户,然后慢慢将他们转化为你的产品开发者。

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

最后,郭老师指出,进入Apache顶级项目最重要的是——坚持,坚持,坚持! 一般一个孵化器项目在1.5到2年内毕业,这期间会经历很多事情:现实与初衷不符; 获得团队KPI后; 公司不再支持; 这条路可以走得更长、更远。

分享的最后,郭总以SeaTunnel和DolphinScheduler为例,分析了一个在Apache基金会孵化的开源项目遇到的各种问题和挑战,以及成为顶级项目的完整过程。

“总的来说,开源不是一场你赢我输的零和游戏,更像是一场无限的游戏。开源会吸引越来越多的人加入,只要有一个人一直在玩。它,它一定能够发展下去。”

圆桌对话丨社区比代码更重要:如何打造繁荣的社区生态

本次圆桌对话聚焦如何打造繁荣的社区生态。 由中国电子标准化研究院木兰开源社区运营负责人、腾讯云TVP、腾讯云俱乐部导师耿航先生主持。 开源协会理事兼联合创始人刘天东,Apache基金会成员,腾讯云TVP,腾远联盟导师; 单志浩,腾讯开源联盟主席,腾远协会导师; 温明,科创科技CEO,Apache基金会成员,腾讯云TVP,腾远联盟导师。

刘天东:什么是好社区,如何建设好社区?

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

从我个人的角度来看,我认为可以归纳为以下几个方面:

1. 人:以人为本,凝聚成共同体

2.道:社区有共同的愿景和使命感

3.法律:拥有良好的治理原则

4、技术:与时俱进,不断优化组织流程和服务

5. 工具:所有社区都需要有价值的输出

如果一个开源社区能够深入思考上述人、道、法、术、器等方面,那么一个具备这些原则的社区就有机会成为一个好的社区。

对于社区生态从0到1的建设,我有三点建议:第一,多读书多学习,学习成功社区的方法,找到自己的路。 二是参与其他开源社区,学习贡献和参与。 这是建立社区的一种更快、更有效的方式。 第三是社区和代码一样。 不要一开始就追求完美,憋大招,而是快速更新迭代,用最小可行方案来构建,避免独裁者的社区治理模式,敢于授权,敢于放手。 只有不完善的代码和项目才有可能发展和进步的社区。 成为英雄或代码英雄并不重要。 只有帮助更多的人成为英雄,这个社区才能长久。

单志浩:国内开源现状、机遇与挑战

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

今年Apache基金会孵化的项目基本上都来自中国,国内的开源项目已经在走向国际化的方向。 GitHub上的中国开发者数量已经达到全球第二规模,中国企业的贡献也开始跻身全球前列。 总体来看,中国的开源从以前的学习和使用,到现在的参与创新,一直处于快速发展的阶段。

还有很多挑战,比如很多开源项目在捐赠时遇到的开源许可问题和知识产权风险。 另外,在开源的过程中,包括在个人发展上,都缺乏导师的专业指导,同时也没有一些资金和资源的支持。 这一背景也是腾讯成立腾源俱乐部的初衷,腾源俱乐部作为帮助开源项目的桥梁,为开源爱好者和作者提供学习、交流、孵化和指导的平台。 未来,腾远将以合作伙伴的身份,借助资金和云资源,为开源项目提供各种支持。

闻明:浅谈开源运营经验

借助开源项目,学习软件开发_借助开源项目,学习软件开发_学习开发安卓软件

早些年,我们觉得Apache的运行模式在国外得到了很好的验证。 我们想知道我们是否可以在中国拥有自己的开源项目软件基础。 通过我们自己的参与,我们可以从头开始构建一个软件基础,​​让它变得更好。 准确熟悉整个软件基金会从筹款、慈善到整个治理结构的全过程。 我们希望能够亲自参与建立中国自己的软件基金会,但受制于当时国内相关政策和规定的不完善,最终选择在中国香港进行相应的尝试。

一年多来我们向香港税务局提交了各种材料,类似于我们要进入Apache孵化器的时候,我们要写一个解释,我为什么要建立这个基金会,我的目的和理念,而我的计划是什么呢? 成立后,运作比较顺利。 相反,最棘手的问题是如何收到老罗捐赠的100万。 花了大约一年的时间。 这个过程是为了让大家非常清晰的体验中国和中国香港的各种慈善和税收条款。 这是我们在香港建立开源公益基金会的经验。

关于APISIX社区运营的坑,我个人认为最大的坑就是发展太快。 很多PMC并没有完全参与整个孵化过程。 因此,很多人还没有完全理解 Apache Way。 已经毕业了。 商业公司也是一样,我会发现公司成立后,跑得太快了。 这个时候,我必须回去把我留下的东西补回来。 我现在做的很多事情都是为了填补过去的漏洞。

开源社区和商业化

刘天东:我个人对开源的理解是,开源是一种社会生产力进化的模式,是一种自下而上、去中心化、开放共享与协作、以人为本的不同于其他主流模式的社会生产力解放。 模型。 该模型可以与其他主导模型形成完美的互补。 开源社区是实践开源生产力的社区。 因此,开源社区和开源的商业化完全可以互补。

我个人认为这背后还有很多工作要做,让商业化和开源社区能够和谐相处,而不是因为KPI而结合,因为了解而分开,最后相忘于彼此.

单志浩:开源和商业化的结合其实是非常紧密的。 大家可以关注一下目前国内开源初创企业的融资情况,可以看到资本对开源项目的高度重视,这本身就体现了开源项目的商业价值。 另一方面,你也可以发现很多开源基金会也处于入不敷出的状态,可见做开源也是需要烧钱的。

这背后需要我们关注的是开源与商业化相结合的模式,如何通过商业模式实现盈利,如何提供服务模式,如何通过PaaS模式做商业产品,如何招募人才,寻找资源、构建技术架构等,都是关注的焦点。

温明:我个人感觉国内很多开源创业公司的现状,无论是开源项目还是资本投资,都有些过热。 商业公司的最终目标一定是盈利,资本对于开源创业公司未必能等太久。

我个人认为开源其实不是一种商业模式。 开源只是意味着我可以以最低的成本快速吸引开发者的关注和使用,但是如何吸引这些贡献者使用付费版才是正事。 要考虑的问题。 如何建立销售团队、产品团队、SaaS 服务等。 我们还处于早期探索阶段,前途是光明的,但道路是曲折的。

借助开源项目,学习软件开发_学习开发安卓软件_借助开源项目,学习软件开发

圆桌交流结束后,主持人耿航先生感慨万千。 他总结道:其实不管是社区还是基金会,都需要不断的迭代和完善自己,才能最终成为一个比较理想的平台。 在上述各个方面中,核心是人。 开源项目在候选人选择的前期非常重要,因为总会有一些人一时兴起想参与,或者因为各种不纯的目的想分一杯羹,但是最后他们不坚持。 很大。

写在最后

开源不是一种严肃的消遣,也不是一个人的狂欢。 可以是开放交付、协作共享的崇高理念,也可以是八方祝贺、资源重组的商机。

国内开发者的开源意识正在迅速改变。 从产品使用到代码贡献再到社区维护,这种面向开发者的发展路径正在逐渐被接受。 当开源文化和社区文化在各大企业和高校广泛传播时,本土开发者参与开源的数量也会增加。 未来的每一天,都可能是中国开源新的一天。

TVP自成立之初就希望“用科技影响世界”,让科技造福每一个人,向善践行科技的初心和初衷。 这不就是另一种意义上的“开源”吗?

TVP,腾讯云有价值专家(Tencent Cloud Valuable Professional),是腾讯云授予云计算领域技术专家的奖项。 TVP致力于打造与行业技术专家的交流平台,促进腾讯云、技术专家和用户之间的有效沟通,共建云计算技术生态圈,实现“科技影响世界”的美好愿景。