How to 解决一个问题,找一个库,评价一个库

Posted 极玩小屋的小哥哥 - JackChen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了How to 解决一个问题,找一个库,评价一个库相关的知识,希望对你有一定的参考价值。

一步一步回答完下列的问题,我相信你的答案就呼之欲出了:

 

准备

-1.定义要解决的这个问题
-2.网上怎么分解这个问题,同行怎么分解这个问题


检索

-1.问题复杂度,项目工期,项目成员的能力,可以把握的资源
-2.开源项目、朋友使用推荐、同行解决方案


需求

-1.使用规模和限制、使用时间
-2.对源代码(需要添加外部库的代码)的熟悉程度,可更改程度


横评
外部

-1.口碑:大家都说好不一定好,大家都说不好,那就好不到哪去了
-2.目标清晰:这个库解决问题是否清晰
-3.可靠:库所依赖的工具,语言是否可靠通用
-4.热度和准确度:搜索第一页能找到你要的内容吗?第一页有多少是你要的信息
-5.授权:分发的license,对私人项目和公司项目影响最大
-6.集成的复杂度(高度模块化、最小入侵、对外部少假定)
-7.有可编译、可调式的源码
-8.活跃:库目前是否持续更新,作者是否接受了其他贡献者的pull-request,
-9.代码成熟度:有明确的分支,还是只有master
-10.源码提供是zip,还是fork,还是bin
-11.build步骤明确简单吗?build工具你需要经常用到吗?能否集成到自动化build?



内部

-1.库对外的使用方便吗?引用的文件多吗?
-2.接口清晰,而且命名规范,读起来少吗?
-3.库发布的形式灵活吗?lib/dll/MD/MT/x86/x64
-4.库的安全感(朋友推荐,靠谱程度)
-5.客户支持,维护工作量,可移植性
-6.学习曲线:网上分布中高低级教程分别都是些什么人,容易找到吗
-7.错误处理,稳定性,性能开销,工具
-8.日志系统,应一致处理运行时消息,易于集成到现有的日志系统。更好的应该是给予可以调节从高到低输出的开关
-9.内存管理(没有不必要的开销,所有分配和释放职责清楚、当分配超出时应该通知外部)
-10.对I/O访问处理,第三方库不应该自己猜测用户的输入方式,譬如自己用fopen
-11.有之前发布的release note吗
-12.未来:有发展方向的roadmap吗

以上是关于How to 解决一个问题,找一个库,评价一个库的主要内容,如果未能解决你的问题,请参考以下文章

How to Read a Book

翻译 Spring Boot How To

依赖库是啥 各个平台下的 比如LINUX xp

c:how to program2.3另一个简单的程序:两个整数相加

在 AutoCAD 2012 中为终身添加库一次

转载:Why machine learning algorithms are hard to tune and how to fix it