如何协调Javascript库中的干耦合和松耦合?
我正在建立自己的JS库如何协调Javascript库中的干耦合和松耦合?,javascript,dry,loose-coupling,Javascript,Dry,Loose Coupling,我正在建立自己的JS库 我们的想法是,该库应该由小型独立模块和一些稍大的实用程序组成,主要用于消除浏览器差异。 我做任何事情都有困难,因为我无法决定是保持干燥还是松散耦合 举个例子?鉴于: 一个小型库,负责从模板生成dom元素 另一个解决duck类型问题的方法(是函数,是数组…) 最后一个用于创建模态框。最后一项需要: 一些类型检查 将仅使用模板库中的一个函数创建模态 模式框库的我的选项: 100%干燥,取决于其他两个库。但是这意味着如果你是一个只想下载模态盒库的用户,你就必须使用另外两
我们的想法是,该库应该由小型独立模块和一些稍大的实用程序组成,主要用于消除浏览器差异。
我做任何事情都有困难,因为我无法决定是保持干燥还是松散耦合 举个例子?鉴于:
- 一个小型库,负责从模板生成dom元素
- 另一个解决duck类型问题的方法(是函数,是数组…)
- 最后一个用于创建模态框。最后一项需要:
- 一些类型检查
- 将仅使用模板库中的一个函数创建模态
我本来想问一个更一般的问题,但后来我意识到它实际上是关于JS的,因为它涉及到大小和性能以及广泛的使用 在这种情况下,是否有任何已知的模式可以遵循?公认的做法是什么?欢迎有任何想法 [编辑:
这是我发现的解释我的担忧的方法。正如文章所说 干是重要的,但[…]低耦合和高内聚也是重要的。[…]你必须考虑所有的[原则],并权衡它们在每种情况下的相对价值
我想在这种情况下我无法衡量它们的价值。我喜欢干燥的概念,但你的权利它有几个问题
我意识到我的答案并不能直接回答你的问题,但也许它可以帮助你平衡DRY的一些负面影响。我喜欢DRY的概念,但你的权利它有几个问题
我意识到我的答案并不能直接回答您的问题,但也许它可以帮助您平衡DRY的一些负面观点。就我个人而言,我一直认为应该在代码中创建接缝。在Java等经典语言中,这是通过创建隐藏具体实现的接口来实现的。这是一个强大的概念,因为它允许开发人员在您的应用程序中“拆开接缝”,并用模拟和双重测试(或者他们自己的实现)替换具体的实现。由于JavaScript是一种动态语言,开发人员依赖duck类型而不是接口:因为没有任何东西是冻结的,所以每个对象都成为代码中的一个接缝,可以被替换 在直接回答您的问题时,我认为始终将代码分解和模块化为更小的库是值得的。您不仅可以避免重复代码(出于许多原因,这不是一个好主意),还可以鼓励其他只想重用库的一部分的开发人员重用代码 与其重新发明轮子,为什么不利用一些更流行的JavaScript库呢