市面上开源项目这么多,别无脑上,需谨慎行事

本次分享使用开源软件的几点注意事项。

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

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

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

正文开始:

一、使用抽象层删除依赖关系

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

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

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

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

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

二、尽可能利用集成软件

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

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

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

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

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

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

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

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

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

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

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

五、由律所审查许可证

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

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

结论

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

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

市面上开源项目这么多,别无脑上,需谨慎行事相关推荐

  1. github上 开源项目_在GitHub上组织开源项目的工作流程的3个技巧

    github上 开源项目 管理开源项目是一项艰巨的工作,挑战随着项目的发展而增长. 最终,一个项目可能需要满足不同的需求并跨越多个存储库. 这些问题不是技术问题,但对于解决扩展技术项目很重要. 诸如敏 ...

  2. 试用码云gitee上开源项目“小威架构 / boot-backend“的代码生成器遇到的坑

    ** 试用码云gitee上开源项目"小威架构 / boot-backend"的代码生成器遇到的坑 ** 源码地址: https://gitee.com/zhang.w/boot-b ...

  3. Android github上开源项目、酷炫的交互动画和视觉效果地址集合

    Android上开源的酷炫的交互动画和视觉效果:http://blog.csdn.net/u013278099/article/details/50323689 Awesome-android-ui: ...

  4. linux卸载android studio,mac上完整卸载删除.简单粗暴无脑:androidstudio删除方案

    如果你是mac  ,你删除as ,删不干净也正常,你会发现安装的时候,前面的东西也在.配置文件在,会导致你以前的错误不想要的东西都在. 废话不多说,复制粘贴就是干!!!!~~~~~~~~ 第一步: 复 ...

  5. Android github上开源项目集合

    Android开源项目第一篇--个性化控件(View)篇 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.I ...

  6. Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向...

    很多android应用的下拉刷新都是使用的pulltorefresh这个开源项目,但是它的扩展性在下拉刷新同时又上拉加载更多时会有一定的局限性.查了很多地方,发现这个开源项目并不能很好的同时支持下拉刷 ...

  7. react 开源项目_2020年2月Github上最热门的JavaScript开源项目

    来自:开源最前线(ID:OpenSourceTop)  2月份GitHub上最热门的JavaScript开源项目排行已经出炉啦,一起来看看上榜详情: 1joplin https://github.co ...

  8. python开源项目2019_2019年6月Github上最热门的Python开源项目

    原标题:2019年6月Github上最热门的Python开源项目 来自:开源最前线(ID:OpenSourceTop) 6月份GitHub上最热门的Python开源项目新鲜出炉,一起和猿妹盘点一下本月 ...

  9. Github上开源项目readme里好看的高大上的有趣的徽章从何而来

    徽章 顶上这玩意应该很多人见过吧.看上去各种高大上,能够显示各种信息.这玩意哪来的呢? 稍微会点前端的同学,会鼠标指到图标上->右键->检查.就会发现这个其实就是一个图片+链接. [![L ...

最新文章

  1. Java黑皮书课后题第10章:*10.18(大素数)编写程序找出五个大于Long.Max_VALUE的素数
  2. jQuery页面顶部下拉广告
  3. 微信小程序把玩(二十一)switch组件
  4. 脚本制作Minilinux
  5. linux 下安装gsl
  6. CSS的position属性
  7. 增量式编码器工作原理以及使用
  8. Netty in Action 中文版 --最贴近原著的翻译
  9. 计算机漫游用户的工作原理,漫游用户配置文件全攻略
  10. 32位颜色 转换成16位颜色
  11. int类型数据范围 - 学习
  12. 记录一个屏幕适配的方案。
  13. Fast and Accurate Extrinsic Calibration for Multiple LiDARs and Cameras
  14. 仿soul交友盲盒1.0全开源源码/完整盲盒交友系统源码
  15. 无人机机载LiDAR数据应用之电力线路巡检
  16. 一个逐渐完善的万能table(一)
  17. 浅谈高校实验室安全管理系统重要性
  18. Java中的CRC校验
  19. b站视频之求知讲堂Java视频-多维数组
  20. 恐龙在身边隐私政策条款

热门文章

  1. 《调色师手册:电影和视频调色专业技法(第2版)》——配置调色影院
  2. 《图解HTTP》(四)更安全的HTTPS、用户认证
  3. 蛋白质结构与功能的预测方法总结和资料汇总
  4. 给点建议!开源项目架构选择!仿腾讯IM后端项目!InChat!
  5. java byte short_Java Byte shortValue()方法
  6. 推迟14年寿命仅10年,造价百亿美元堪比航母,这面金色镜子能干啥
  7. 网易考试大题知识盲区之B树、B+树、B*树
  8. 中图分类号和UDC查询
  9. MFC视图窗口(CView子类)初始化消息的调用顺序
  10. 如何保证游戏长盛不衰