对于Node.Js和Erlang,我都是一个完整的菜鸟.但是不可能构建一个模拟Erlang行为的Node.js应用程序吗?
例如,您将json消息传递到分布式node.js服务器园区,甚至将新代码传递给那些没有脱机的服务器,就像erlang一样.
如果您有一个在收到消息时激活的消息处理程序回调,则此消息处理程序可以检查该消息是否是代码更新消息,从而用新代码替换自身(当前处理程序).
所以应该可以让Node.Js服务器没有停机时间来进行代码更新,而不是太大惊小怪,对吧?
我一直认为F#有两种不同的方式来传递参数,咖喱风格和元组风格.这实际上是对的吗?
它不仅仅是一种风格,咖喱风格和参数可以是简单的值或元组.
例如
someFunc (a,b) =
Run Code Online (Sandbox Code Playgroud)
这不是一个带有一个咖喱风格参数的函数,恰好是一个元组吗?允许我使用pipleline运算符将元组传递给此函数?(元组元素的名称)
(1,2) |> someFunc
Run Code Online (Sandbox Code Playgroud)
它是否正确?
什么被认为是对复杂单元(如编译器)进行单元测试的最佳方法?
多年来我写了一些编译器和解释器,我发现这种代码很难以一种好的方式进行测试.
如果我们采用类似抽象语法树生成的东西.你会如何使用TDD测试?
小结构可能很容易测试.例如:
string code = @"public class Foo {}";
AST ast = compiler.Parse(code);
Run Code Online (Sandbox Code Playgroud)
因为那不会产生很多ast节点.
但是,如果我真的想测试编译器可以为类似方法生成AST:
[TestMethod]
public void Can_parse_integer_instance_method_in_class ()
{
string code = @"public class Foo { public int method(){ return 0;}}";
AST ast = compiler.Parse(code);
Run Code Online (Sandbox Code Playgroud)
你会断言什么?手动定义代表给定代码的AST,并断言生成的AST符合手动定义的AST看起来非常简洁,甚至可能容易出错.
那么像这样的TDD复杂场景的最佳策略是什么?
tdd parsing unit-testing compiler-theory abstract-syntax-tree
可以说我有一个IObservable<Something>服务器端,存储在静态字段或其他任何东西.
让我们假设我有一个SignalR集线器,它有一个Subscribe方法和一个有notify功能的signalR客户端.
public static IObservable<string> Events;
protected void Application_Start()
{
//dummy observable just to generate events for me..
Events = Observable
.Timer(TimeSpan.Zero, TimeSpan.FromMilliseconds(50))
.Select(l => l.ToString());
...snip..
}
Run Code Online (Sandbox Code Playgroud)
和:
public class MyHub1 : Hub
{
public void Subscribe()
{
Clients.All.notify("start");
WebApiApplication.Events
.Subscribe(s => Clients.Caller.notify(s));
}
}
Run Code Online (Sandbox Code Playgroud)
和:
myHub.client.notify = function (event) {
console.info(event);
};
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能使所有客户共享可观察信息?也就是说,我希望每个连接客户端在订阅后接收最后200个事件.然后每个客户端应该实时滴答相同的事件.
我想Replay应该以某种方式使用IObservable 的方法.我希望这个行为非常类似于聊天,用户可以实时查看最后的x条消息+每个新事件.
除了如何实际构成可观察的查询之外,在Asp.NET中存储和设置共享事件流的最佳方法是什么?
我们在使用 Azure Kusto 中的时间图表时遇到一些问题。在此图表中,我们对一段时间内的 http 异常进行了分组。
问题在于图表仍然报告不存在异常的时间点的最后看到的值。参见红色标记。在这个特定案例中,我们看到图表在 5:28 报告了 /poll 端点上的 3.23k 异常。而当时事实上并不存在这样的错误。
查询看起来像这样
AppServiceHTTPLogs
| where TimeGenerated > ago(1d)
| where ScStatus >= 500
| summarize count() by tostring(CsUriStem), bin(TimeGenerated, 30m)
| render timechart
Run Code Online (Sandbox Code Playgroud)
使用柱形图可以解决这个问题,但这会带来不那么清晰的代价。还有其他选择吗?
我们能否以某种方式将缺失值默认为 0?
我安装了Async CTP,不知道它会导致Asp.NET MVC 3出现问题.所以我按照每个可能的卸载指令重新安装了SP1和MVC 3.
但是,MVC 3模板不会显示在新项目对话框中. 我确保目标平台在对话框中是.NET 4,因此不是原因.
关于如何重新出现MVC 3模板的任何想法?
在SQL Server 2008中,是否可以将源表中的数据插入到dest表中,并同时从dest表中使用@@ identity更新源表?
例
表来源:
Id - UniqueId
Name - varchar(10)
RealId [null] - int
Run Code Online (Sandbox Code Playgroud)
表目的地
Id - [id] INT identity
Name - varchar(10)
Run Code Online (Sandbox Code Playgroud)
我想将行从Source传输到Dest,并RealId从Dest表更新到@@ identity值
我可以以任何我喜欢的方式修改Source,Dest表可能不会被更改.
我最好的选择是什么?
另请注意,"名称"列可能包含重复项,因此我无法真正加入该列.
(真正的表格要复杂得多,但这应该给出我想要的东西)
也许这不属于stackoverflow(?)
我有一个在IIS7上运行的经典ASP.NET webforms站点.问题是即使是静态资源的响应时间也非常慢.在某些情况下,提供250k css文件需要2秒以上.
还有一个包含json数据的静态文本文件用于测试目的.如果我手动请求该文件,则此文件大约需要10-20毫秒.如果从网页请求相同的文件(JQuery ajax调用),则相同的文件需要300ms来获取,并且根据firebug,它的所有服务器等待时间.
ASP.NET是否在提供文件时做了一些时髦的东西?什么能引起这种奇怪行为的想法?
(在vs.net devserver中本地运行相同的站点不会显示相同的问题)
[编辑]一些更新
文本文件具有查询字符串参数以避免本地缓存.每次查询字符串参数更改时,加载需要300毫秒.使用相同的params请求相同的文件将其缩短到20ms(并且firebug和webinspector都说文件是通过网络加载的,而不是从本地缓存接收的)
是什么导致这个?
即使没有任何查询字符串参数,静态图像也表现得很奇怪.由jquery加载的图像需要3-400毫秒..手动请求相同的图像需要20毫秒(没有任何缓存)
出于某种原因,微软决定不支持EF5中的简单连接.
例如
Select(foo => new
{
someProp = "hello" + foo.id + "/" + foo.bar
}
Run Code Online (Sandbox Code Playgroud)
如果foo.id或foo.bar是数字,这将抛出.
我发现的解决方法显然是代码:
Select(foo => new
{
someProp = "hello" +
SqlFunctions.StringConvert((double?)foo.id).Trim() +
"/" +
SqlFunctions.StringConvert((double?)foo.bar).Trim()
}
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但看起来很可怕.
那么,有更好的方法来实现这个更清洁的代码吗?我对这个客户端不感兴趣,所以没有.AsEnumerable()请回答.
假设我想从网络套接字执行非阻塞读取.我可以异步等待套接字读取x字节,一切都很好.
但是如何通过protobuf将其与反序列化相结合?
从流中读取对象必须阻塞?也就是说,如果流包含的解析器数据太少,那么必须在后台进行一些阻塞,以便读者可以获取所需的所有字节.
我想我可以使用lengthprefix分隔符并读取第一个字节,然后计算出在解析之前我必须获取的最小字节数,这是正确的方法吗?例如,如果我的缓冲区是500字节,则等待那500个字节,并解析长度前缀,如果长度超过500,则再次等待,直到读取所有内容.
结合非阻塞IO和protobuf解析的惯用方法是什么?
(我现在正在使用Jon Skeet的实现http://code.google.com/p/protobuf-csharp-port/)
c# ×3
asp.net ×2
asp.net-mvc ×1
async-await ×1
async-ctp ×1
azure ×1
currying ×1
erlang ×1
f# ×1
iis-7 ×1
jquery ×1
kql ×1
node.js ×1
nonblocking ×1
parsing ×1
robustness ×1
signalr ×1
t-sql ×1
tdd ×1
tuples ×1
unit-testing ×1