Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何大海捞针: 寻找靠谱且合适的(第三方)开源库 #78

Open
ufologist opened this issue Feb 28, 2019 · 0 comments
Open

如何大海捞针: 寻找靠谱且合适的(第三方)开源库 #78

ufologist opened this issue Feb 28, 2019 · 0 comments
Labels

Comments

@ufologist
Copy link
Member

ufologist commented Feb 28, 2019

大致步骤

  • 需求: 确定要找什么
  • 初筛: "大海捞针"初筛出一批主流的
  • 权衡: 从多个方面来权衡可靠性
  • 对比: 根据实际情况做对比, 选出最合适的一个做为首选

详细步骤

  • 以功能(需要解决的问题)来确定要寻找的开源库的关键词
    • 最关键问题是弄清楚你要找什么, 关键词有哪些, 例如: qrcode
  • 以关键词作为搜索词, 筛选出一批开源库, 确定主流的开源库有哪些, 看看别人都在用什么
    • 通过 github 搜索一次(sort:most stars, language: javascript) 如果你比较懒, 直接选星最多的那个, 结束
    • 通过 npm 搜索一次(sort: Popularity)
    • 通过 Google 搜索一次
  • 从多个方面来权衡哪些库更靠谱一些
    • 有大公司背书的, 例如是 Google 或者 Facebook 开源的项目
    • 有大公司在使用(别人深思熟虑的选择可能就是最优选择了)
    • 有大神背书的, 例如 sindresorhus
    • License 是否适用, 首选 MIT 开源协议的
    • 社区是否活跃, 优先选择最为活跃的
      • 最后提交时间
      • 最新版本发布时间
      • issue 的情况(是否有人在处理)
      • PR 的情况(是否有人在处理)
      • 是否有 roadmap(版本计划)
      • 是否有贡献指南(CONTRIBUTING)
      • 是否有周边设施(生态圈, 说明很多人在真正使用)
    • 看(代码)质量
      • 文档是否完备, 有详细的 API 和使用文档, 能够很快上手使用
      • 是否有版本发布说明(CHANGELOG)
      • 有覆盖率较高的测试用例
        • 接入 CI
        • 接入测试覆盖率的平台
      • 代码书写是否规整可读, 划分了清晰的模块
      • 库是否可以扩展
  • 最后根据自己的实际情况做对比, 选出最合适的一个做为首选
    • 体积(代码量越少体积越小, 实现越简单)

    • 依赖(最好依赖少很轻量), 推荐使用 BundlePhobia

      BundlePhobia-jsonp

    • 兼容性

    • 功能是否聚焦(最好只提供你需要的单一功能)

    • ES2015 模块(按需加载)

    • 是否发布到了 npm package, 采用 semver

  • 其他做为备选(备注筛选过程中对比的优缺点)

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant