0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用开源软件成功的五个实践

lilihe92 来源:最后一个bug 作者:最后一个bug 2022-12-01 11:59 次阅读

前言

开源软件无处不在,有潜力帮助企业加快开发和提高软件质量。但如果不谨慎行事,它们可能是一个挑战。

下面是五个成功利用开源软件的最佳实践。

1、使用抽象层解决依赖关系

笔者审阅代码库时发现的一个常见问题是,开发人员将应用程序代码与使用的软件库紧耦合。例如,如果一个开发人员正在使用FreeRTOS,那么应用程序代码调用特定于FreeRTOS API的方法是,如果开发人员决定更改RTOS,则必须重写大量代码来替换所有这些RTOS调用。

你可能会认为更改库是很少见的,但你会惊讶,经常是团队开始使用某个操作系统、库或组件后,而当他们决定需要进行更改时,却不得不返回并重写代码。

当团队选择一个开源组件,甚至是商业组件时,他们应该做的第一件事就是创建一个与该组件交互的抽象层。以RTOS为例,一个团队应该使用OS抽象层OSAL(它允许他们使用独立于OS的API编写应用程序代码)。

如果操作系统发生变化,应用程序不会在意,因为它正在访问一个抽象层,软件更改可能只需要几分钟而不是几天。

2、尽可能利用集成软件

大多数开源软件都是在自己的沙盒中编写的,而没有考虑到它可能需要与之交互的其他组件。组件通常使用不同的编码标准、样式、测试程度等编写。

当你开始将多个设计为不能相互协作的开源组件组合在一起时,可能会导致长时间的调试、头疼和错过最后期限。所以,尽可能选择已经集成并测试在一起的组件。

一个很好的例子是使用Amazon FreeRTOs连接AWS。FreeRTOS已经与连接到云所需的附加连接库进行了集成和测试,因此不要选择其他库,除非它也经过测试和集成。另一个例子是许多微控制器制造商生产的代码生成器工具。

这些工具通常已经集成了驱动程序软件组件、RTOS、文件系统、USB和其他一些组件。它们已经被证明可以协同工作,可以节省时间和金钱。

3、执行软件审核和质量分析

有很多优秀的开源软件,也有很多不太好的软件。在开发人员决定在项目中使用开源组件之前,他们需要确保他对软件进行尽职调查,或者雇佣别人做这件事。这包括花时间审核组件并执行质量分析。

在开始使用开源组件时,至少应检查源代码的以下方面:使用圈复杂度度量的复杂性、从功能上确保其满足业务需求和目标、遵守最佳实践和编码标准(根据需要)、处理错误的能力、可测试性。

这至少可以帮助开发人员了解他们正在使用什么,以及潜在的问题和陷阱。

4、从活跃社区中选择软件

通过快速的网络搜索或浏览github来找到解决问题的软件组件总是很诱人的。在选择一个开源组件时,确保其有一个活跃的社区是非常重要的。

这包括,在论坛上提问会得到快速的响应,新版本会定期发布,软件也会随着新功能的增加而不断改进。选择一个不活跃的社区的组件会导致开发人员被迫自己解决问题,或者更糟的是,不得不维护组件。

5、由律师审查许可证

开源软件许可可能很复杂。有十几种不同的许可方案,对用户提出了不同的要求。在某些情况下,开发人员可以使用他们认为合适的开源软件。在其他一些情况下,可以使用该软件,但任何其他软件也必须是开源的。

虽然这些许可证在最近几年变得更加容易理解,但是产品开发人员正在经营一项业务,因此有必要聘请一名律师来审查软件许可。这是一项额外的开支,但这是成本的一部分,从长远来看可以节省开支。

结论

适当地利用开源软件可以使开发团队受益匪浅。然而,为了成功,开发人员需要确保明智地选择开源组件。这包括抽象出组件,以确保其应用程序保持灵活性和可维护性。还需要仔细检查开源软件,以确保满足质量和一般要求。

遵循这些最佳实践可以帮助团队避免陷入导致产品延迟、解决方案架构不良的解决方案、质量问题以及产品开发过程中经常出现的许多其他问题的泥潭。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源软件
    +关注

    关注

    0

    文章

    210

    浏览量

    15964
  • RTOS
    +关注

    关注

    22

    文章

    819

    浏览量

    119875
  • FreeRTOS
    +关注

    关注

    12

    文章

    484

    浏览量

    62362

原文标题:嵌入式项目中使用开源项目,需要注意哪些问题?

文章出处:【微信号:最后一个bug,微信公众号:最后一个bug】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    开源基础设施能力建设分论坛成功举办

    在当今科技飞速发展的时代,开源已成为推动全球创新与进步的核心动力。无论是开发实践还是数字化转型,开源以其特有的开放性、共享性和协同性,助力各行业技术革新。在构建开源生态的过程中,
    的头像 发表于 12-27 13:56 219次阅读

    《RISC-V能否复制Linux 的成功?》

    基于RISC-V持续提供至六内核系列。” 恩智浦半导体负责研发的软件工程副总裁Rob Oshana表示,开源硬件的发展方式与开源
    发表于 11-26 20:20

    活动回顾 艾体宝 开源软件供应链安全的最佳实践 线下研讨会圆满落幕!

    艾体宝与Mend举办研讨会,聚焦开源软件供应链安全,邀请行业专家分享合规管理、治理之路及最佳实践,圆桌讨论加深理解,助力企业更安全稳健发展。
    的头像 发表于 10-30 17:52 525次阅读
    活动回顾 艾体宝 <b class='flag-5'>开源</b><b class='flag-5'>软件</b>供应链安全的最佳<b class='flag-5'>实践</b> 线下研讨会圆满落幕!

    开放原子开源基金会亮相第二十六届中国国际软件博览会

    近日,以“软件赋能产业变革 智能驱动数实融合”为主题的第二十六届中国国际软件博览会在天津开幕。开放原子开源基金会理事长程晓明出席开幕式暨主题峰会并发表题为《开放原子开源基金会在
    的头像 发表于 10-25 17:08 949次阅读

    润和软件亮相德国“OCX 2024”大会

    联网与边缘计算、开源安全、开放技术以及开源最佳实践等内容,为开源社区打造了一多样化学习、分享和交流的平台,有效促进了国际
    的头像 发表于 10-25 11:24 444次阅读
    润和<b class='flag-5'>软件</b>亮相德国“OCX 2024”大会

    简仪科技与您相约第九届开源测控开发者大会

    第九届开源测控开发者大会,简仪科技将继续秉承开放、创新的精神,深入探讨模块测控领域软件的重要性,并展示基于开源锐视测控平台的实践应用,带来丰富的议题分享。
    的头像 发表于 10-21 11:35 522次阅读

    迅龙软件出席2024开放原子开源生态大会,共谋开源生态繁荣之路

    产业发展脉搏。作为全球领先的开源硬件和开源软件品牌商,迅龙软件受邀参加此届大会,并携旗下高算力人工智能系列产品OrangePiAIStudio、OrangePiAI
    的头像 发表于 09-26 13:51 468次阅读
    迅龙<b class='flag-5'>软件</b>出席2024开放原子<b class='flag-5'>开源</b>生态大会,共谋<b class='flag-5'>开源</b>生态繁荣之路

    开放原子开源数据库生态论坛成功举办

    以“开源生态筑基础,数字经济铸未来”为主题的2024全球数字经济大会——开放原子开源数据库生态论坛在北京成功举办。开放原子开源基金会副秘书长辛晓华出席并致辞,北京市经济和信息化局信息化
    的头像 发表于 09-24 10:36 511次阅读

    如意香山笔记本软件适配工作稳步推进,成功运行多款Linux发行版及国产办公套件

    在上周刚结束的第四届 RISC-V 中国峰会(RISC-V Summit China 2024)上,中国科学院软件研究所主导研发的如意香山笔记本——全球首台采用香山开源RISC-V高性能处理器核
    发表于 09-02 11:33

    苹果推出全新开源Swift软件

    七月三十一日,苹果企业总部对外正式发表公告,宣布昨日(即七月二十九日)成功推出全新的开源 Swift 软件包—— (唤名为 swift-homomorphic-encryption)。此举旨在为 Swift 编程语言带来应用便利
    的头像 发表于 07-31 15:17 565次阅读

    开启开源布道新篇章 — LF开源软件学园诚邀开源精英加入成为OSPO讲师

    OSPO——企业开源战略的引擎在当今数字化时代,开源软件已成为推动全球技术创新的加速器。它不仅重塑了软件开发的模式,更成为企业构建竞争优势的关键。然而,随着
    的头像 发表于 07-04 08:36 375次阅读
    开启<b class='flag-5'>开源</b>布道新篇章 — LF<b class='flag-5'>开源</b><b class='flag-5'>软件</b>学园诚邀<b class='flag-5'>开源</b>精英加入成为OSPO讲师

    艾体宝方案 | 管理开源软件包更新,提升开源安全性

    文章介绍了Mend.io如何通过其Smart Merge Control功能增强开源软件的安全性。现代应用程序高度依赖开源软件,但这也增加了潜在的安全漏洞。Mend SCA的增强功能允
    的头像 发表于 05-31 17:03 350次阅读

    基础软件开源生态研讨会暨OpenHarmony城市技术论坛延安站活动成功举办

    基础软件开源生态研讨会 暨OpenHarmony城市技术论坛(延安站)成功举办 5月11日,由OpenHarmony项目群技术指导委员会主办,华为技术有限公司、西安电子科技大学举办,延安大学、延安
    的头像 发表于 05-15 18:41 595次阅读
    基础<b class='flag-5'>软件</b><b class='flag-5'>开源</b>生态研讨会暨OpenHarmony城市技术论坛延安站活动<b class='flag-5'>成功</b>举办

    迅龙软件加入开放原子开源基金会和OpenHarmony 项目,共建开源新生态

    近日,迅龙软件与“开放原子开源基金会”签署协议,加入“开放原子开源基金会”(以下简称“开源基金会”),成为开源基金会白银捐赠人,这标志着迅龙
    的头像 发表于 04-30 17:50 1100次阅读
    迅龙<b class='flag-5'>软件</b>加入开放原子<b class='flag-5'>开源</b>基金会和OpenHarmony 项目,共建<b class='flag-5'>开源</b>新生态

    开放原子开源大赛OpenHarmony智能化应用生态挑战赛决赛路成功举办

    软件定义世界,开源共筑未来。在江苏省工信厅、市工信局、开放原子开源基金会及相关单位的指导和支持下,4月19-20日,由中软国际教育科技集团联合举办的开放原子开源大赛-OpenHarmo
    的头像 发表于 04-24 09:48 453次阅读