我正在开发一个将大量使用JBoss Messaging(JMS)的项目.我的任务是为其他开发人员构建一个易于使用的Messaging包装器,并且正在考虑使用JMS的Message Selectors来提供过滤技术,以便将不必要的消息发送保持在最低限度.我很好奇是否有人在表演方面有任何经验?我担心JMS提供商可能会陷入消息选择器的困境,从而有效地破坏了整个目的.然而,它比为每种消息类型创建一长串主题/队列要好得多.
最终,我无疑会最终使用两者的组合,但我关注的是对性能的影响,无论我更倾向于哪种方式.
我最近花了很多时间来执行我编写的各种SW组件的详细UML设计.回顾一下我最近完成的事情,并将其与我第一次学习UML时的情况进行比较,我发现我现在几乎严格使用聚合和组合关系,并且几乎放弃了"香草"非定向/定向关系.我当然仍然使用泛化和实现,但这些与上面的明显不同,并不被视为此问题的一部分.
在我看来,聚合/组合意味着"香草"联想的含义相同,等等.聚合和组合自然意味着一个方向,任何现代UML程序仍然允许您在聚合/组合关系上定义多重性并将动词应用于关系.那时,我认为香草协会的目的不大.
我理解有些人很难理解聚合和组合之间的区别.在早期,我有点难以理解他们的差异,我相信混淆是我使用香草协会的部分原因.我现在处于这样的地步,我看到很少或没有使用香草协会,并且实际上不喜欢看到它们被使用,因为我相信它们会留下一些问题(特别是两个对象之间强大或弱的生命周期关系).我相信香草协会唯一的实际用途是当你对手头问题的理解还没有发展到足以确定聚合和成分之间的生命周期差异时.在这种情况下,最好至少表明关系存在,然后当您更好地理解手头的问题时,您可以回来并适当地改变它.
长话短说,我相信人们使用香草协会的绝大多数时间,他们可以更准确地描述为聚合,有时作为一个组合.在我的信念中,我是非常错的吗?我错过了什么吗?让我听听吧!
我希望有人能指出我在这里遗漏的明显事物.我觉得我已经这样做了一百次,并且由于某种原因,今晚,这种行为让我陷入了困境.
我正在从公共API读取一些XML.我想从某个节点('body'中的所有内容)中提取所有文本,其中还包括各种子节点.简单的例子:
<xml>
<metadata>
<article>
<body>
<sec>
<title>A Title</title>
<p>
This contains
<italic>italics</italic>
and
<xref ref-type="bibr">xref's</xref>
.
</p>
</sec>
<sec>
<title>Second Title</title>
</sec>
</body>
</article>
</metadata>
</xml>
Run Code Online (Sandbox Code Playgroud)
所以最终我想遍历所需节点内的树(再次,'body')并提取其自然顺序中包含的所有文本.很简单,所以我只写了这个小的Groovy脚本......
def xmlParser = new XmlParser()
def xml = xmlParser.parseText(rawXml)
xml.metadata.article.body[0].depthFirst().each { node ->
if(node.children().size() == 1) {
println node.text()
}
}
Run Code Online (Sandbox Code Playgroud)
...继续炸毁"没有方法签名:java.lang.String.children()".所以我在想自己"等等,什么?我会发疯吗?" Node.depthFirst()应该只返回一个Node的List.我添加了一个'instanceof'检查,果然,我得到了Node对象和String对象的组合.具体而言,不在同一行中的实体内的行将作为String返回,即"This contains"和"and".其他一切都是节点(如预期的那样).
我可以轻松解决这个问题.然而,这似乎不是正确的行为,我希望有人可以指出我正确的方向.
我的正则表达式知识正在逃避这一点......
假设我有一个带有URI作为查询参数的URL,ala:
http://hostname.com?uri=http://website.com/company/YoYo+&+Co+Inc&type=company
Run Code Online (Sandbox Code Playgroud)
...假设我们的uri param本身不包含任何params,我想在Javascript中手动解析查询参数,但很明显我们的嵌入式uri param中的&符号使得更难以分解所有的&符号并运行它从那里.
我真正想要做的是定义一个只匹配问号和符号的正则表达式,在跟随另一个&符号(或行尾)之前跟随等号.我提出了这个很接近,但也包括非捕获文本,我不知道为什么:
[?&](?:[^&]+)=
Run Code Online (Sandbox Code Playgroud)
...导致匹配?uri=以及&type=接近但是捕获超出我想要的匹配.我在做什么错了,使得它不只是捕获的?,并&在比赛吗?换句话说,它应该只捕获?uri &之前和之前的类型.
aggregation ×1
associations ×1
composition ×1
groovy ×1
java ×1
javascript ×1
jboss ×1
jms ×1
messaging ×1
performance ×1
regex ×1
uml ×1
xml ×1
xml-parsing ×1
xmlnode ×1
xmlslurper ×1