- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 nodejs 应用程序中,我们有许多事件将被发出和捕获。事件通常被定义为像 e 这样的简单字符串。 G。 '打开'。我的想法是为我的事件创建一个自己的对象。
var event = {
open: 'my-open',
close: 'my-close'
};
module.exports = event;
想要的好处是:
我的问题是,这是否是个好主意,或者是否有重大理由不这样做?
更新
我们决定只在模块中使用这样的事件对象。
好处是:
最佳答案
我对此有点两面性:
一方面,我可以看到明显的好处,例如使用具有自动完成功能的 IDE 时。此外,您还有一个优势,可以在一个地方定义您的事件。此外,这意味着当例如你发出一个事件,你可以清楚地区分你的自定义事件和 Node.js 自己的事件,只需查看代码。它们是不同类型的事件,只是看起来不同而已。
另一方面,我认为这会使事情过于复杂。本质上,Node.js 中的事件只是一个字符串。您的建议依赖于对象属性的名称,这些名称最终也是字符串。没有编译器支持这个,因为没有编译器。因此,无论您输错了实际事件名称还是输错了事件包装属性的名称,都没有关系。
换句话说:如果您不使用 IDE,那将毫无用处。相反,它会强制您在一个地方收集所有可能的事件名称,这将使维护事件变得困难。想一想长时间内发生的大量事件:哪些事件可以安全地删除而不会在完全不同的地方(甚至可能在不同的模块中)破坏代码?或者,由于事件名称甚至可能在其他模块中使用,您必须搜索所有模块。在这种情况下,我也可以只搜索一个字符串。
如果我比较 yield 与风险,我可能会将事件名称作为简单的字符串,就像在 Node.js 本身中一样。
最后,还有一件事我要注意:有时需要通过在运行时构建事件名称字符串来动态创建事件名称。一旦你有了这样的东西,你就会以两种不同的方式发出你的自定义事件,这打破了你拥有一种一致的事件方式的规则……所以,如果我考虑到这一点,我会更加谨慎。
而且,(现在真的)最后,最后一件事:引入这样的对象不会改进您的代码。它提高了与 IDE 的兼容性。我怀疑这是否是一个解决方案,我宁愿将其视为一种解决方法。
关于javascript - 为事件创建自己的对象以在代码完成中获取它的优点/缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27153530/
我是一名优秀的程序员,十分优秀!