依赖地狱的九个层次(以及走出的路线图)| Sourcegraph 博客

主要观点:项目被软件依赖关系的复杂网络所淹没,导致停滞,介绍了依赖地狱的九个圆圈及其问题与解决方法。
关键信息:

  • 九个圆圈分别代表不同的依赖问题,如未记录更新、盲目依赖新包、依赖过多、使用多个包管理器等。
  • 强调要确保预提交时实际依赖与记录依赖匹配,避免一些不良依赖行为,如猴子补丁等,遵循语义版本控制等。
    重要细节:
  • 在第一圆圈“Limbo”,存在未记录更新包等不一致情况,提交前要检查,合并前也要审查新依赖。
  • 第二圆圈“Lust”,盲目追逐新包可能带来风险,如左填充库的事件。
  • 第三圆圈“Gluttony”,过多依赖导致构建缓慢和仓库庞大,应去除未使用的依赖。
  • 第四圆圈“Greed”,不要同时使用多个包管理器,可用 Docker 等工具统一管理。
  • 第五圆圈“Wrath”,找不到所需包可通过特定 Git 仓库和提交引用,或为操作系统包贡献代码。
  • 第六圆圈“Heresy”,猴子补丁通常是坏主意,可使用第三方文件夹。
  • 第七圆圈“Violence”,要遵循语义版本控制,避免在小版本或补丁版本上进行破坏性更改。
  • 第八圆圈“Fraud”,循环依赖往往源于过度急切的包拆分,可通过接口等解决。
  • 第九圆圈“Treachery”,菱形依赖问题很难解决,多数 JavaScript 包管理器允许不同版本,Go 语言有特定规则。
    关于作者:Matt 曾是 Google 的软件工程师,现从事新创业,其博客matt-rickard.com上有相关文章。
阅读 40
0 条评论