使用开源软件的5个最佳实践

开源软件无处不在,并且有潜力帮助企业加速开发并提高软件质量。如果不注意,要获得这些结果可能会很困难。这是利用开源软件的五种最佳实践,它们将有助于成功利用开源软件。

最佳实践1-使用抽象层删除依赖项

我经常在代码库中看到的常见问题之一是,开发人员将其应用程序代码与他们使用的软件库紧密结合在一起。例如,如果开发人员正在使用FreeRTOS,那么他们的应用程序代码将以FreeRTOS API的特定方式进行调用,这样,如果开发人员曾经决定更改其RTOS,则他们将不得不重写大量代码以替换所有这些代码。 实时操作系统 调用。现在您可能会决定更改库的情况很少,但是您会惊讶地发现,我经常看到团队以一个OS,库或组件开始一条道路,而当他们决定需要编写代码时,不得不回头重新编写代码。更改。

团队在选择开源组件甚至商业组件时应该做的第一件事是创建一个抽象层来与该组件进行交互。以RTOS为例,团队将使用OS抽象层OSAL,这将允许他们使用与OS无关的API编写应用程序代码。如果操作系统发生更改,则该应用程序将不在乎,因为它正在访问抽象层,并且软件更改可能需要几分钟而不是几天。

 

最佳实践2-尽可能利用集成软件

大多数开源软件都是在自己的沙箱中编写的,而没有过多考虑与之交互的其他组件。组件通常使用不同的编码标准,样式,测试程度等来编写。当您开始将多个原本设计为无法协同工作的开源组件组合在一起时,可能会导致调试时间过长,令人头疼并且错过了最后期限。尽可能选择已集成在一起并经过测试的组件。

一些很好的例子包括使用Amazon FreeRTOS连接到AWS。 FreeRTOS已经与连接到云所需的其他连接库进行了集成和测试,因此除非经过了测试和集成,否则不要选择其他库。另一个例子是许多微控制器制造商生产的代码生成器工具。这些工具通常已经集成了驱动程序软件组件,RTOS,文件系统,USB和其他几个组件。他们已经被证明可以协同工作,因此如果可以利用它们,可以节省时间和金钱。

 

最佳实践3 –执行软件审核和质量分析

有很多很棒的开源软件,还有很多不是那么出色的软件。在开发人员决定在他们的项目中使用开放源代码组件之前,他们需要确保他们花时间对软件进行尽职调查或雇人为他们做。这涉及花时间审核组件和执行质量分析。质量通常在情人眼中,也就是说,读者对质量代码的定义可能与我的定义有很大不同。

至少,从开源组件开始时,应检查源代码的以下方面:

  • 使用循环复杂度测量的复杂度
  • 功能上确保满足业务需求和目标
  • 遵守最佳做法和编码标准(根据需要)
  • 处理错误的能力
  • 可测性

这至少将帮助开发人员了解他们正在使用的工具以及潜在的问题和陷阱。

 

最佳做法4 –由律师审查许可证

开源软件许可可能难以驾驭。有大约十二种不同的许可方案,它们对用户提出了不同的要求。在某些情况下,开发人员只能使用他们认为合适的开源软件。在其他软件中,可以使用该软件,但任何其他软件也必须是开源的!这意味着可能需要释放产品秘密调味料,这可能会破坏其在市场上的竞争优势。近年来,虽然这些许可证变得更加容易阅读,但产品开发人员正在开展业务,因此必须让他们的律师审查软件许可证以确保所有内容都超出要求。是的,没有人愿意花这笔钱,但这是一种商业成本,从长远来看,如果犯了一个错误,可能会节省更多的钱。

 

最佳实践5 –从活跃社区中选择软件

总是很想做一个快速的网络搜索或细读github查找解决问题的软件组件。选择开源组件时,确保组件具有活跃的社区非常重要。例如,使用FreeRTOS的开发人员知道他们可以进入论坛并提出问题,并且他们通常会很快得到答复。新版本会定期发布,并且该软件总是会通过添加新功能进行改进。选择社区不活跃的组件可能会导致开发人员自己,不得不自己解决问题,或更糟的是,必须维护组件!

 

结论

适当地利用开源软件可以使使用它的开发团队大为受益。但是,为了获得成功,开发人员需要确保他们明智地选择了开源组件。这包括提取组件以确保其应用程序保持灵活性和可维护性。它还要求开发人员仔细检查开源软件(假设它不是Linux),以确保在提交组件之前满足质量和一般要求。

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

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.