我开始使用rabbit.js从node.js应用程序连接到RabbitMQ.
我被阻止了:
错误:服务器关闭了通道:403(ACCESS-REFUSED),并
在Channel.C.accept(/.../rabbit.js/node_modules/amqplib/lib/channel 上)显示消息"默认交换时不允许使用ACCESS_REFUSED - 操作" . js:398:24
)
在Socket.go(/.../ rabbit)的Connection.mainAccept [as accept](/.../ rabbit.js/node_modules/amqplib/lib/ connection.js :63:33). js/node_modules/amqplib/lib/connection.js:448:48)
在Socket.EventEmitter.emit(events.js:92:17)
...
这是预期的,因为我使用的RabbitMQ实例被配置为要求发布者和订阅者在能够使用消息队列之前提供凭据,并禁用来宾帐户.
rabbit.js的官方文档没有提到凭据.Google搜索"rabbit.js指定凭据"和"rabbit.js登录密码"尚无定论.
是否支持rabbit.js的凭据?如果没有,node.js的其他RabbitMQ客户端是否支持它们?
我总是了解到使用单元测试进行最大程度的代码覆盖是很好的.我还听到像微软这样的大公司的开发人员说他们编写了比可执行代码本身更多的测试代码.
现在,这真的很棒吗?它有时似乎完全没有时间损失,只会使维护更加困难吗?
例如,假设我有一个方法DisplayBooks()可以填充数据库中的书籍列表.产品要求表明,如果商店中有超过一百本书,则只能显示一百本.
所以,有了TDD,
BooksLimit(),这将在数据库中保存两百本书,调用DisplayBooks()并执行Assert.AreEqual(100, DisplayedBooks.Count).DisplayBooks()通过将结果限制设置为100来改变那么,直接进入第三步是不是更容易,而且根本不进行BooksLimit()单元测试?当需求从100个书籍限制改为200个限制,更改只有一个字符而不是更改测试,运行测试以检查它是否失败,更改代码并再次运行测试以检查是否成功时,是不是更敏捷?
注意:我们假设代码已完整记录.否则,有些人可能会说,他们是对的,进行完整的单元测试将有助于理解缺乏文档的代码.实际上,进行BooksLimit()单元测试将非常清楚地显示存在最大数量的书籍,并且该最大数量为100.进入非单元测试代码将更加困难,因为这样的限制可能是虽然for (int bookIndex = 0; bookIndex < 100; ...或实施foreach ... if (count >= 100) break;.
我有一段JavaScript代码,预计会为变量设置一个整数值.
有些东西坏了,所以当我尝试做的时候alert(A);,它会回来NaN.isNaN(A);返回true.但是,如果我alert(typeof(A));,它说number.
那么变量怎么可以是一个数字而不是一个数字呢?也许我误解了NaN究竟是什么?
编辑:感谢答案,我看到我错了,因为:
NaN是Number,NaN是指"不是数字",这与"不是类型Number"不同,0/0是一个很好的例子NaN:它仍然是一个数字,但JavaScript(没有其他人)可以说零的实际值除以零.1/0另一方面,返回Infinity,这不是NaN.我想知道在第二个列表中是否可以找到第一个列表中的至少一个元素.
我可以看到两种方法.假设我们的列表是:
List<string> list1 = new[] { "A", "C", "F", "H", "I" };
List<string> list2 = new[] { "B", "D", "F", "G", "I" };
Run Code Online (Sandbox Code Playgroud)
第一种方法使用循环:
bool isFound = false;
foreach (item1 in list1)
{
if (list2.Contains(item1))
{
isFound = true;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
第二个直接使用Linq:
bool isFound = list1.Intersect(list2).Any();
Run Code Online (Sandbox Code Playgroud)
第一个是写的很长,而不是非常直接/易于阅读.第二个是短而清晰的,但表现很低,特别是在大型名单上.
这可能是一种优雅的方式吗?
这是我的字符串的例子.
$x = "John Chio - Guy";
$y = "Kelly Chua - Woman";
Run Code Online (Sandbox Code Playgroud)
我需要reg替换的模式.
$pattern = ??
$x = preg_replace($pattern, '', $x);
Run Code Online (Sandbox Code Playgroud)
谢谢
我有时会使用大括号来隔离代码块,以避免以后错误地使用变量.例如,当我SqlCommand在同一个方法中放入几个s时,我经常复制粘贴代码块,最后混合名称并执行两次命令.添加大括号有助于避免这种情况,因为SqlCommand在错误的位置使用错误将导致错误.这是一个例子:
Collection<string> existingCategories = new Collection<string>();
// Here a beginning of a block
{
SqlCommand getCategories = new SqlCommand("select Title from Movie.Category where SourceId = @sourceId", sqlConnection, sqlTransaction);
getCategories.Parameters.AddWithValue("@sourceId", sourceId);
using (SqlDataReader categoriesReader = getCategories.ExecuteReader(System.Data.CommandBehavior.SingleResult))
{
while (categoriesReader.Read())
{
existingCategories.Add(categoriesReader["Title"].ToString());
}
}
}
if (!existingCategories.Contains(newCategory))
{
SqlCommand addCategory = new SqlCommand("insert into Movie.Category (SourceId, Title) values (@sourceId, @title)", sqlConnection, sqlTransaction);
// Now try to make a mistake and write/copy-paste getCategories instead of addCategory. It will not …Run Code Online (Sandbox Code Playgroud) 有没有办法将HTML转换为XAML?我注意到您可以将HTML粘贴到RichTextBox中,您可以通过查看FlowDocument来获取XAML.但是,这是一个黑客.有没有更好的办法?
我想用几种语言知道,如果两个词是:
例如:
had并且has有相同的基础:在这两种情况下,它都是动词have,city并cities有相同的基础.went并gone有相同的基础.有没有办法使用Microsoft Word API不仅拼写检查文本,还可以将单词规范化为基数,或者至少确定两个单词是否具有相同的基数?
如果没有,那么允许我这样做的(免费或付费)库(不是网络服务)是什么(再次,用几种语言)?
在C#中使用XML序列化时,我使用如下代码:
public MyObject LoadData()
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyObject));
using (TextReader reader = new StreamReader(settingsFileName))
{
return (MyObject)xmlSerializer.Deserialize(reader);
}
}
Run Code Online (Sandbox Code Playgroud)
(以及类似的反序列化代码).
它需要铸造而且不是很好.有没有办法,直接在.NET Framework中使用泛型与序列化?也就是说写下这样的东西:
public MyObject LoadData()
{
// Generics here.
XmlSerializer<MyObject> xmlSerializer = new XmlSerializer();
using (TextReader reader = new StreamReader(settingsFileName))
{
// No casts nevermore.
return xmlSerializer.Deserialize(reader);
}
}
Run Code Online (Sandbox Code Playgroud) 使用相同的查询但不同的参数查询数据库时,最好是:
使用单个示例:
using (SqlCommand addProduct = new SqlCommand(@"insert into [Products].[Products] ([Name], [Price]) values (@name, @price)", sqlConnection))
{
// Insert the first product.
addProduct.Parameters.AddWithValue("@name", "Product 1");
addProduct.Parameters.AddWithValue("@price", 41F);
int countAffectedRows = addProduct.ExecuteNonQuery();
Debug.Assert(countAffectedRows == 1, "Wrong number of rows affected.");
addProduct.Parameters.Clear();
// Insert the second product.
addProduct.Parameters.AddWithValue("@name", "Product 2");
addProduct.Parameters.AddWithValue("@price", 49.9);
countAffectedRows = addProduct.ExecuteNonQuery();
Debug.Assert(countAffectedRows == 1, "Wrong number of rows affected.");
}
Run Code Online (Sandbox Code Playgroud)
使用两个单独查询的相同代码示例:
// Insert the first product.
using (SqlCommand addProduct = new SqlCommand(@"insert into [Products].[Products] ([Name], [Price]) …Run Code Online (Sandbox Code Playgroud) c# ×5
coding-style ×1
generics ×1
grammar ×1
html ×1
javascript ×1
linq ×1
nan ×1
nlp ×1
node.js ×1
oop ×1
performance ×1
php ×1
rabbitmq ×1
readability ×1
refactoring ×1
regex ×1
scope ×1
stylecop ×1
tdd ×1
typeof ×1
unit-testing ×1
wpf ×1
xaml ×1