小编Dan*_*dio的帖子

Node.js的事件驱动有什么不同?我们不能在ASP.Net的HttpAsyncHandler中这样做吗?

我在网络编程方面不是很有经验,我还没有在Node.js中编写任何东西,只是对事件驱动的方法感到好奇.看起来确实不错.

本文解释了当我们使用基于线程的方法处理请求时可能发生的一些不好的事情,并且应该选择事件驱动的方法.在基于线程的情况下,收银员/线程一直困扰着我们,直到我们的食物/资源准备就绪.在事件驱动下,收银员将我们送到请求队列之外的某个地方,这样我们就不会在等待食物时阻止其他请求.要扩展基于阻塞线程,需要增加线程数.对我而言,这似乎是一个不正确使用线程/线程池的错误借口.

难道不能使用IHttpAsyncHandler正确处理?ASP.Net接收请求,使用ThreadPool并运行处理程序(BeginProcessRequest),然后在其中我们使用回调加载文件/数据库.那个线程应该可以自由处理其他请求.文件读取完成后,再次调用ThreadPool并执行剩余的响应.对我来说没有那么不同,那为什么不那么可扩展呢?

我所知道的基于线程的缺点之一是,使用线程需要更多内存.但只有这些,您才能享受多核的好处.我怀疑Node.js根本没有使用任何线程/核心.

因此,基于事件驱动vs基于线程(不要带"因为它是Javascript和每个浏览器..."的论点),有人可以指出我使用Node.js而不是使用Node.js的实际好处是什么现有技术?

这是一个很长的问题.谢谢 :)

asp.net multithreading event-driven node.js

71
推荐指数
3
解决办法
3万
查看次数

如何检索用于编译给定ELF可执行文件的GCC版本?

我想检索用于编译给定可执行文件的GCC版本.我试过readelf但没有得到这些信息.有什么想法吗?

gcc elf

67
推荐指数
4
解决办法
4万
查看次数

SOLID vs. YAGNI

我听说不遵守面向对象设计中的SOLID原则的最常见论点之一是YAGNI(尽管论证者通常不称之为):

"我可以将功能X和功能Y放在同一个类中.这很简单,为什么要添加一个新类(即复杂性)."

"是的,我可以将我的所有业务逻辑直接放入GUI代码中,它更容易,更快.这将是唯一的GUI,并且不太可能出现重要的新需求."

"如果在新的要求不太可能的情况下,我的代码变得过于混乱,我仍然可以为新要求进行重构.所以你的'如果你以后需要......怎么办?'的论点不算数."

对于这种做法,你最有说服力的论点是什么?我怎么能真正证明这是一种昂贵的做法,特别是对那些没有太多软件开发经验的人来说.

oop yagni solid-principles

64
推荐指数
3
解决办法
1万
查看次数

Vagrant/VirtualBox/Apache2奇怪的缓存行为

我正在使用Vagrant在Apache2上运行一个支持Ubuntu的VirtualBox.

除其他外,Web服务器提供来自my/vagrant目录的静态文件.

这在大多数情况下效果很好.但是,当我更改共享文件夹上的图像并重新加载网站时,会提供先前版本的图像,但它会被截断.

如果我先从共享文件夹中删除旧图片,刷新网站以便图片不显示,然后保存新文件并重新加载网站,它就可以工作.

有谁知道这个问题?我没有安装任何特殊功能,只有带有mod_rewrite的Apache 2和带有Mongo的AP,APC插件,MongoDB以及带有一堆脚本的nodeJS.

virtualbox apache2 vagrant

64
推荐指数
3
解决办法
2万
查看次数

如何将Jenkins用户身份验证详细信息"传递"到使用Jenkins API创建作业的脚本?

我有一个脚本,通过curl HTTP调用删除和重新创建作业,我想摆脱任何硬编码的"用户名:密码".例如curl -X POST $url --user username:password

注意事项:

  • Jenkins CLI(可能不是一个选项).一个应该能够实现与Jenkins API相同的CLI(创建作业等),但据我所知,Jenkins CLI不适合我,因为创建的作业只会在重启后出现在Jenkins中或"重新加载" "从磁盘配置",这将取消任何其他正在运行的作业.

  • API令牌.无法找到如何获取用户令牌,然后将其作为参数传递给脚本,但这可能是一个解决方案..

api curl token jenkins

63
推荐指数
4
解决办法
10万
查看次数

在验证数据时抛出异常是好还是坏?

在验证数据时,我养成了做以下事情的习惯

*注意:我每次检查都没有真正的布尔值.这只是一个例子.

*另一个注意事项:测试期间的任何错误处理都已正确完成.try-catch中抛出的唯一异常是我自己的.

try {
  if (validCheckOne = false) {
    throw new Exception("Check one is bad");
  }
  if (validCheckTwo = false) {
    throw new Exception("Failed because of check2");
  }
  if(validCheckTen = false) {
    throw new Exception("Yet another failure on your part: check10.");
  }
} catch(Exception e) {
  MessageBox.Show("Your stupid data is wrong! See for yourself: " + e.Message);
}
Run Code Online (Sandbox Code Playgroud)

这是不好的做法吗?抛出异常会减慢程序的执行速度还是不可取的?

validation exception

62
推荐指数
6
解决办法
2万
查看次数

在Maven中调试?

是否可以从Maven启动调试器,如jdb?我有一个pom.xml文件,可以成功编译项目.但是,程序挂起了某个地方,我真的想启动jdb或等效的调试器来查看发生了什么.

我编译使用mvn compile并启动使用:

mvn exec:java -Dexec.mainClass="com.mycompany.app.App"
Run Code Online (Sandbox Code Playgroud)

我期待的是:

mvn exec:jdb -Dexec.mainClass="com.mycompany.app.App"
Run Code Online (Sandbox Code Playgroud)

启动调试器,但像往常一样,我的期望与maven的理念不一致.

另外,我找不到任何文档(在Maven的网站或谷歌上)来描述调试的工作原理.我怀疑我必须使用一些插件.

java debugging maven-2

62
推荐指数
6
解决办法
14万
查看次数

如何使用Oracle SQL Developer导出数据?

如何使用SQL Developer导出Oracle DB数据?我需要所有数据,表格,约束,结构等.

sql oracle oracle-sqldeveloper

57
推荐指数
3
解决办法
19万
查看次数

在本地覆盖Vagrant配置设置(每个开发人员)

我想一般回答这个问题,但为了说明一下,这是一个用例:

我正在使用Vagrant进行简单的LMAP项目.我使用独立的Puppet进行配置.现在,可能有一些开发人员坐在代理后面,他们需要对VM进行一些额外的配置.我有事情在Puppet方面工作:我可以将代理IP(如果有的话)作为事实传递给Ppetpet中的Vagrantfile木偶,如果它已经设置,Puppet会做出相应的反应.

我唯一的问题是:开发人员如何为他们的开发环境指定/覆盖此设置而无需更改Vagrantfile(在版本控制下并且必须保持dev-environment-neutral)?

如果人们可以覆盖一个名为例如Vagrantfile.local我将排除通过的文件中的一些Vagrant设置,那将是非常棒的.gitignore.

由于Vagrantfile只是Ruby,我尝试了以下内容:

# Also load per-dev custom vagrant config
custom_vagrantfile = 'Vagrantfile.local'
load custom_vagrantfile if File.exist?(custom_vagrantfile)
Run Code Online (Sandbox Code Playgroud)

文件包含基本上是可行的,但它看起来像在包含的文件中,我不再在同一个Vagrant上下文中...

Vagrant::Config.run do |config|
  config.vm.provision :puppet do |puppet|
    puppet.facter = { "proxy" => "proxy.host:80" }
  end
end
Run Code Online (Sandbox Code Playgroud)

...还"重置"我在主要部分制作的所有其他木偶配置值Vagrantfile,这让我觉得我在这里朝着错误的方向前进.我应该注意到我在Ruby的总菜鸟;)

任何人都可以给我一个提示,甚至是一个有效的解决方案,可以在这里完成per-dev定制吗?

ruby vagrant

55
推荐指数
6
解决办法
2万
查看次数

将Maven用于多个部署环境(生产/开发)

我在Maven中有一个Web应用程序,具有默认目录结构.没问题.默认目录结构有一些指向我的localhost数据库的属性文件.

目前,我使用以下命令创建一个Ant脚本来创建不同的war文件 - 一个用于生产,一个用于开发:

ant deploy-dev
ant deploy-prod
ant deploy-sit
ant deploy-uat
Run Code Online (Sandbox Code Playgroud)

所以基本上他们创建一个war文件,然后通过插入属性文件来更新war文件

在maven中有类似的东西(根据配置创建不同的战争)?

如果是的话,我该怎么做?

我试过mvn war但它只是创造了一场战争

maven-2

54
推荐指数
4
解决办法
8万
查看次数