如何选择开源库

丰富的开源资源为开发者提供了便利,但如何在众多开源资源中找到适用自己项目的开源库(编者注:此处的库指开发中可用的框架、函数库、类库或者其他组件。)呢?国外开发者Daniel Marbach(他的介绍)在其博客中详细介绍了相关技巧。

Daniel Marbach认为利用开源库可以大大提高开发速度,他经常鼓励自己的团队成员在开发中选用开源库。他总结选用技巧如下:

1. 首先根据自己的项目性质选择合适的开源许可证。

     对你所开发软件的顾客和应用对象来说,许可证是否适用非常重要。例如,在受监管的环境下,通常只有Apache2可用。

2. 确定你要解决的问题类型。

    例如需要解决的是软件的分发、缓存、持久性还是松散耦合?

3. 提炼出问题的元标签和描述性短语。

    例如,如果你需要解决的问题是关于在多个机器中的最佳路径,你的标签或短语可能会是遗传算法、job-Shop Scheduling、规划图、优化调度算法、最短路径等。

4. 浏览codeplex, google code or sourceforge (github.com 也是个很有价值的网站) ,并列出初步筛选到的开源库。

    例如:在IoC/DI列表里,可以找到ninject, structuremap, autofac, windsor等开源项目。

5. 找到这些项目的主页,分别查看项目的最新进展,标出那些很久没有更新或者已经停止开发的项目。

    注意主页上的新闻、发布通告、提交记录、网站更新等。我一般会从列表中删除掉那些超过6个月没有做更新的项目。

6. 到代码库页找到相关测试组件。

    建议你将没有单元测试组件的项目从列表中删去,也许你觉得这个要求过于苛刻了,但如果没有单元测试,如何能保证这个项目的质量呢?

7. 在项目主页中确认有相关文档。

    从选好的项目列表中删去那些没有文档、代码示例或适用指南的项目。毕竟学习一个全新的工具或框架我们需要付出一定的精力,一个全面细致的文档是非常必要的。

8. 从版本控制系统中取出项目源代码,查看是否有扩展点(extension points)。

    理想的开源库或框架并不限制你使用特定的日志框架或依赖注入容器(DI container)。而多种扩展点可以为你提供定制化日志系统、容器等的可能性。

还有其他一些筛选原则,你可以根据所作项目的需求进行考查:

> 是否附有构建脚本(build script)?

> 该开源项目小组是否持续使用同一集成开发环境?

> 该开源项目是否有清晰的road map?

> 该项目是否设有问题跟踪器(issue tracker)?

> 是否很快就有社区补丁推出?

> 在社区中,关于该项目的问题反馈是否迅速?

> 其他的开发者是否乐于使用该开源库,在社区中关于该项目的知识技巧是否很快传播?

> 有多少活跃的项目贡献者?

> 版本号管理是否清晰?

> 对于来自社区的具体需求,该项目的改进和集成情况?


CSDN翻译

原文链接:http://www.planetgeek.ch/2010/06/20/how-to-select-open-source-libraries/




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值