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

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

3天内不再提示

利用开源软件的最佳实践

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-09-18 16:32 次阅读

c嵌入式软件开发,现在相比以前方便多了,当你要实现一个项目需求,勤快一点基本上在网络上都能找到对应的资料,自己拿来修修改改也基本上能够实现大体的功能。

这或许就是开源的力量能够帮助很多开发者快速的进行现有软件资源的整合而为之所用,但这些软件和资源也存在优劣,一方面就是有开发者足够的能力把握这些软件,另一方面就是选择更加靠谱的开源组件来使用。

英文文章中描述了5点关于嵌入式开源软件的使用建议,这几点我相信是大部分嵌入式开发者都要考虑的,这里分享给大家:

正文(译文):

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

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

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

笔者审阅代码库时发现的一个常见问题是,开发人员将应用程序代码与使用的软件库紧耦合

例如,如果一个开发人员正在使用FreeRTOS,那么应用程序代码调用特定于FreeRTOS API的方法是,如果开发人员决定更改RTOS,则必须重写大量代码来替换所有这些RTOS调用。

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

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

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

2、尽可能利用集成软件

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

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

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

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

3、软件审核与质量分析

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

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

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

4、从活跃设计中选择软件

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

这包括,在论坛上提问会得到快速的响应,新版本会定期发布,软件也会随着新功能的增加而不断改进。

选择一个不活跃的社区的组件会导致开发人员被迫自己解决问题,或者更糟的是,不得不维护组件。

5、由律师审查许可证

开源软件许可可能很复杂。有十几种不同的许可方案,对用户提出了不同的要求。

在某些情况下,开发人员可以使用他们认为合适的开源软件。在其他一些情况下,可以使用该软件,但任何其他软件也必须是开源的。

虽然这些许可证在最近几年变得更加容易理解,但是产品开发人员正在经营一项业务,因此有必要聘请一名律师来审查软件许可。

这是一项额外的开支,但这是成本的一部分,从长远来看可以节省开支。

6、最后

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

还需要仔细检查开源软件,以确保满足质量和一般要求。

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

审核编辑:彭菁

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

    关注

    4983

    文章

    18286

    浏览量

    288506
  • 开源软件
    +关注

    关注

    0

    文章

    204

    浏览量

    15661
  • 软件
    +关注

    关注

    67

    文章

    4350

    浏览量

    85626
  • 应用程序
    +关注

    关注

    37

    文章

    3136

    浏览量

    56398
收藏 人收藏

    评论

    相关推荐

    现代C++项目的最佳实践

    本系列是开源书C++ Best Practises[1]的中文版,全书从工具、代码风格、安全性、可维护性、可移植性、多线程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第三篇。
    发表于 09-29 11:32 845次阅读

    C编程最佳实践.doc

    C编程最佳实践.doc
    发表于 08-17 14:37

    Dockerfile的最佳实践

    ”微服务一条龙“最佳指南-“最佳实践”篇:Dockerfile
    发表于 07-11 16:22

    变量声明最佳实践

    所以我们开始编写32位和16位代码,并过渡到MPLAB X和XC编译器。我想到的一个主题是声明变量的最佳实践。常规IpType。h或类型。h pr STDIN。或It8或字节char等任何想法,走哪条路?
    发表于 09-30 12:01

    虚幻引擎的纹理最佳实践

    纹理是游戏不可或缺的一部分。 这是一个艺术家可以直接控制的领域,以提高游戏的性能。 本最佳实践指南介绍了几种纹理优化,这些优化可以帮助您的游戏运行得更流畅、看起来更好。 最佳实践系列指
    发表于 08-28 06:39

    利用Mycat实现MySQL读写分离、分库分表最佳实践

    利用Mycat实现MySQL读写分离、分库分表最佳实践
    发表于 09-08 10:20 14次下载
    <b class='flag-5'>利用</b>Mycat实现MySQL读写分离、分库分表<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>

    润和软件荣获阿里云“最佳实践奖”

    日前,2021阿里云峰会暨合作伙伴大会在北京召开。江苏润和软件股份有限公司(以下简称润和软件)凭借多年来与阿里云的稳健合作,荣获“最佳实践奖”,润和
    的头像 发表于 06-09 17:20 1490次阅读

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

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

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

    开源软件无处不在,有潜力帮助企业加快开发和提高软件质量。但如果不谨慎行事,它们可能是一个挑战。下面是五个成功利用开源
    的头像 发表于 12-01 11:59 650次阅读

    以技术实践赋能开源安全|2023开放原子全球开源峰会开源安全技术与实践分论坛即将启幕

    作为数字化转型时代的重要技术和协作模式,开源软件在各行各业得到广泛应用,由此也引发了诸多与安全相关的问题。 6月12日,2023开放原子全球开源峰会“开源安全技术与
    的头像 发表于 06-03 14:45 887次阅读
    以技术<b class='flag-5'>实践</b>赋能<b class='flag-5'>开源</b>安全|2023开放原子全球<b class='flag-5'>开源</b>峰会<b class='flag-5'>开源</b>安全技术与<b class='flag-5'>实践</b>分论坛即将启幕

    以技术实践赋能开源安全|2023开放原子全球开源峰会开源安全技术与实践分论坛即将启幕

    作为数字化转型时代的重要技术和协作模式,开源软件在各行各业得到广泛应用,由此也引发了诸多与安全相关的问题。 6月12日,2023开放原子全球开源峰会“开源安全技术与
    的头像 发表于 06-05 10:35 324次阅读
    以技术<b class='flag-5'>实践</b>赋能<b class='flag-5'>开源</b>安全|2023开放原子全球<b class='flag-5'>开源</b>峰会<b class='flag-5'>开源</b>安全技术与<b class='flag-5'>实践</b>分论坛即将启幕

    弥合风险缺口 筑牢共享安全|2023开放原子全球开源峰会开源安全技术与实践分论坛成功举办

    6月12日,2023开放原子全球开源峰会开源安全技术与实践分论坛成功举办。本场论坛围绕开源软件供应链、
    的头像 发表于 06-13 22:45 1216次阅读

    安全软件开发的最佳实践

    安全的软件开发最佳实践是必要的,因为安全风险无处不在。在网络攻击盛行的时代,它们可以影响每个人,包括个人、公司和政府。因此,确保软件开发的安全性至关重要。 在这里,我们将解释了什么是
    的头像 发表于 05-08 10:51 490次阅读
    安全<b class='flag-5'>软件</b>开发的<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>

    润和软件联合主办openEuler &amp; OpenHarmony 社区合规SIG开源合规共建研讨会

    openEuler 和 OpenHarmony 社区合规 SIG 第一次线下研讨会,聚集了10+企业的开源合规治理专家和法务专家,积极分享开源合规治理的经验、见解和最佳实践,共同探讨
    的头像 发表于 06-27 11:30 326次阅读
    润和<b class='flag-5'>软件</b>联合主办openEuler &amp; OpenHarmony 社区合规SIG<b class='flag-5'>开源</b>合规共建研讨会

    SAN设计和最佳实践指南

    电子发烧友网站提供《SAN设计和最佳实践指南.pdf》资料免费下载
    发表于 09-01 11:02 0次下载
    SAN设计和<b class='flag-5'>最佳</b><b class='flag-5'>实践</b>指南