The bloat of edge-case first libraries
8 months ago
- #javascript
- #dependencies
- #optimization
- 优先处理边缘情况的库往往会处理不太可能发生的场景,导致依赖树臃肿
- 为罕见输入过度设计(例如clamp函数中处理类数字字符串)会不必要地使代码复杂化
- 像'is-number'和'is-arrayish'这样的示例库解决了边缘情况,但经常被误用于常见场景
- 库应该聚焦常见用例并假设输入类型正确,将验证留给应用层处理
- 过度细粒度的库(如'shebang-regex')会带来不必要的复杂性和膨胀
- npmgraph和Dependabot等工具有助于管理和优化依赖树
- 验证应该发生在数据边界,而不是依赖树深处
- 社区正在用现代化的高效替代方案替换臃肿的依赖项