Chinaunix首页 | 论坛 | 博客
  • 博客访问: 699444
  • 博文数量: 255
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 2811
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-09 13:29
个人简介

IT业行者,行者无疆

文章分类

全部博文(255)

文章存档

2011年(121)

2010年(134)

我的朋友

分类:

2010-09-24 11:41:09

如何选择开源库?

2010-07-07 18:13 |  6918次阅读 |  来源:   【已有9条评论】

关键词:, |  感谢的提供 |  收藏这篇资讯

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

> 版本号管理是否清晰?

> 对于来自社区的具体需求,该项目的改进和集成情况?(编译/杨东杰)

讨论:您对选用开源库有何心得?

阅读(608) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~