• 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吗

  • 相关阅读:
    Spring4整合hibernate4
    Conference Search不错的学术会议日程提示网站
    python---解决“Unable to find vcvarsall.bat”错误
    PCV 学习笔记-ch1 主成分分析实现
    QQ客服代码,支持临时会话
    [TL-WR845N V4] 无线桥接(WDS)设置 + 迅捷桥接配置
    解决win2008下IIS7的HTTP500错误
    为IIS增加PHP支持
    解决mysql"Access denied for user'root'@'IP地址'"问题
    Windwos2008如何关闭IE增强的安全配置
  • 原文地址:https://www.cnblogs.com/Again/p/6667713.html
Copyright © 2020-2023  润新知