小编bry*_*sai的帖子

为什么基于SOAP的Web服务不是RESTful?

我理解RESTful是一种架构风格,但究竟是什么让基于SOAP的Web服务不计入RESTful?

我不清楚下面(来自维基百科)的哪些内容不符合SOAP.

  1. 客户端服务器
  2. 无状态
  3. 可缓存
  4. 分层系统
  5. 按需代码(可选)
  6. 统一界面
    • 确定资源
    • 通过这些表示来操纵资源
    • 自我描述性的信息
    • 超媒体作为应用程序状态的引擎

编辑:我刚刚遇到这个,很好地总结了它.

REST不是RPC,RPC说,"定义一些做某事的方法",而REST说,"定义一些资源,他们将拥有这些方法".这是一个微妙但重要的区别,当给定URI时,任何人都知道他们可以通过预定义的方法集与它进行交互并接收标准的HTTP响应.所以给了 http://www.peej.co.uk/我知道我可以发出一个GET并收到一些有意义的回复.然后我可以尝试使用PUT来更改它并接收有意义的HTTP错误代码,因为我没有被授权干涉它.

rest soap web-services

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

如何使用define_method指定方法默认参数?

define_method 可用于定义方法:

define_method(:m) do |a|
end
Run Code Online (Sandbox Code Playgroud)

这相当于以下内容:

def m(a)
end
Run Code Online (Sandbox Code Playgroud)

但是,以下使用的等效形式是什么define_method:

def m(a=false)
end
Run Code Online (Sandbox Code Playgroud)

请注意,我需要能够在m()不给出任何参数的情况下进行调用.

ruby

34
推荐指数
2
解决办法
7852
查看次数

什么时候JavaScript ==比===更有意义?

由于这等于运算符(== VS ===)应该在JavaScript中的比较中使用?表示它们基本相同,除了' ==='也确保类型相等,因此' =='可能执行类型转换.在Douglas Crockford的JavaScript:The Good Parts中,建议始终避免' =='.但是,我想知道设计两组相等算子的原始思想是什么.

您是否看到过使用' =='实际上比使用'更合适' ===的情况?

javascript equality weak-typing identity-operator

17
推荐指数
2
解决办法
1044
查看次数

如何从谷歌的索引中排除部分网页?

有一种方法可以从谷歌的索引中排除完整的页面.但有没有办法明确地从谷歌的爬行中排除某个网页的某些部分?例如,排除通常包含无关内容的侧栏?

web-crawler google-webmaster-tools

7
推荐指数
1
解决办法
2949
查看次数

通过Unix,Mac,DOS/Windows选择差异换行的基本原理?

有没有人知道不同平台的原始理由或故事,每个平台都选择不同的,但在某种程度上相似的新线表示?最初必须做出一些设计决策.(我不相信这是随机选择......)

  • Unix/Mac OS X:LF(\n)
  • Mac OS 9及之前版本:CR(\ r \n)
  • DOS/Windows:CRLF(\ r \n)

history text newline text-editor

7
推荐指数
1
解决办法
457
查看次数

Ruby中元类的Base和Derived类之间的关系是什么?

在Ruby中,我们可以使用supersingleton方法来调用相应的超类的单例方法,如下面的代码所示.

class Base
  def self.class_method
    puts "Base class method"
  end
end

class Derived < Base
  def self.class_method
    puts "Derived class method"
    super
  end
end

Derived.class_method
# Derived class method
# Base class method
Run Code Online (Sandbox Code Playgroud)

但是,我似乎并不完全了解super内部的呼吁Derived.class_method可以达到的程度Base.class_method.我假设它class_method是在他们的元类上定义的,这是否意味着他们的元类有父/子关系?(我无法通过实验确认)

更新:我问的是这个问题,因为我记得在某个地方看到基地和派生类'元类之间存在某种关系(但我再也找不到了).除了知道实际如何super工作之外,我还想确认这两个元类是否完全分开.

ruby metaprogramming metaclass

6
推荐指数
1
解决办法
809
查看次数

在ruby中加载/卸载/更新类

我做了一些Ruby类动态加载/卸载/更新实验,实现了插件基础设施.我发现了几点:

  1. 如果在没有首先卸载它的情况下加载同一类的新版本,则新版本基本上与先前版本"顶部"或"合并".使用先前版本创建的所有现有对象都将使其类定义"更新".
  2. 卸载类不会影响使用此类创建的现有对象.现有的对象可以保留任何卸载的版本.(类不能再使用,但不能使用已创建的对象)
  3. 如果在卸载先前版本后加载新版本,则创建的新对象将是新版本.但是,在加载新版本之前创建的旧对象不会受到影响,并且仍然是旧版本.

我的问题是,是否有一种简单的方法可以将旧版本"switch"创建的现有对象创建到新版本(但不是旧版本和新版本的合并版本)?在我看来,可能的方法是在卸载/加载后重新创建对象,这不适合插件(不希望它被销毁).

更新:我的意图是使用新版本更新现有对象,而不会将旧版本与新版本合并(例如更改参数数量或删除方法).卸载然后重新加载似乎是最干净的方法,尽管你必须跟踪所有这些对象并在需要时重新创建它们.此外,昂贵的物体可能不适合重新创建.这给我留下了第二个选项,禁止意外合并发生.只要没有删除方法,没有方法签名改变,合并应该可以正常工作.

以下是我的测试程序:

$ cat test.rb
load 'v1.rb'
puts "=> 'v1.rb' loaded"
a1 = A.new
puts "=> object a1(#{a1}) created"
a1.common
a1.method_v1
load 'v2.rb'
puts '',"=> class A updated by 'v2.rb'"
a1.common
a1.method_v1
a1.method_v2

a2 = A.new
puts '',"=> object a2(#{a2}) created"
a2.common
a2.method_v1
a2.method_v2

Object.send(:remove_const, 'A')
puts '',"=> class A unloaded"

A.new rescue puts $!

puts '',"=> class A does not exist now"
a1.common
a1.method_v1
a1.method_v2 rescue puts $!
a2.common
a2.method_v1
a2.method_v2

load 'v3.rb' …
Run Code Online (Sandbox Code Playgroud)

ruby metaprogramming

5
推荐指数
1
解决办法
1719
查看次数

“垃圾收集率”是什么意思,它能带来什么好处?

在分析 Java GC 行为时,某些工具的“垃圾收集率”指标(示例如图 19 所示,来自http://www.ibm.com/developerworks/java/library/j-ibmtools2/#fig19):单位是MB/秒。

与其他指标(例如 GC 利用率)相比,这是一个很少见的指标。它看起来代表 GC 清理的速度。但它有什么好处吗?或者应该如何最好地分析?

java performance garbage-collection

5
推荐指数
1
解决办法
2941
查看次数

Ruby常量是什么意思?

Ruby常量究竟意味着什么?以下代码未显示任何"常量"属性.警告就在那里,但我仍然要改变A指的是什么.

A = 1
puts A # => 1
A = 2  # warning: already initialized constant A
puts A # => 2
Run Code Online (Sandbox Code Playgroud)

或者Ruby常量只是一个没有任何执行的指示?

ruby constants

5
推荐指数
2
解决办法
3272
查看次数

node.js response.write(data)在数据大小很小的情况下花费很长时间

我注意到node.js中以下代码性能的奇怪行为.当大小content为1.4KB时,请求的响应时间大约为16ms.但是,当大小content只有988字节时,请求的响应时间奇怪得多,大约200ms:

response.writeHead(200, {"Content-Type": "application/json"});
response.write(JSON.stringify(content, null, 0));
response.end();
Run Code Online (Sandbox Code Playgroud)

这似乎不直观.查看Firebug的网络标签,增加/差异全部来自接收(另一方面等待两者都是16ms).

我做了以下更改来修复它,以便两个案例都有16毫秒的响应时间:

response.writeHead(200, {"Content-Type": "application/json"});
response.end(JSON.stringify(content, null, 0));
Run Code Online (Sandbox Code Playgroud)

我查看了node.js 文档,但到目前为止还没有找到相关信息.我的猜测这与缓冲有关,但是node.js可以在write()和之间抢占end()吗?

更新:

这是在Linux上的v0.10.1上测试的.

我试图窥视并确定了2路径之间的区别.第一个版本有2个Socket.write调用.

writeHead(...)
write(chunk)
  chunk = Buffer.byteLength(chunk).toString(16) + CRLF + chunk + CRLF;
  ret = this._send(chunk);
    this._writeRaw(chunk);
      this.connection.write(chunk);
end()
  ret = this._send('0\r\n' + this._trailer + '\r\n'); // Last chunk.
    this._writeRaw(chunk);
      this.connection.write(chunk);
Run Code Online (Sandbox Code Playgroud)

第二个好的版本只有1个Socket.write调用:

writeHead(...)
end(chunk)
  var l = Buffer.byteLength(chunk).toString(16);
  ret = this.connection.write(this._header + l + CRLF +
                              chunk + …
Run Code Online (Sandbox Code Playgroud)

node.js

5
推荐指数
1
解决办法
3251
查看次数

Ruby中浮点的一致舍入

我理解由于浮点的不精确表示,下面的代码'感觉'不一致.

"%.1f" % 1.14 # => 1.1
"%.1f" % 1.15 # => 1.1
"%.1f" % 1.16 # => 1.2
"%.0f" % 1.4 # => 1
"%.0f" % 1.5 # => 2
"%.0f" % 1.6 # => 2
Run Code Online (Sandbox Code Playgroud)

但是,有一种简单的方法可以将一致的浮点数舍入为5吗?一种方法可能是明确地进行字符串操作.是否有更简单的方法或现有的图书馆?

ruby floating-point rounding

2
推荐指数
1
解决办法
1502
查看次数

如何在db2中使用group by子句执行COUNT(*)?

我想知道此查询将返回多少行:

SELECT 
  MONTH(DHSTMP), SUM(DHDLDY), SUM(DHBUDS), YEAR(DHSTMP) 
FROM 
  DSHDAY 
WHERE 
  DHSTMP BETWEEN '2009-07-26 00:00:00' AND '2011-03-09 23:59:59' 
GROUP BY 
  YEAR(DHSTMP), MONTH(DHSTMP) ORDER BY YEAR(DHSTMP), MONTH(DHSTMP)
Run Code Online (Sandbox Code Playgroud)

所以我尝试过:

SELECT 
  COUNT(*) 
FROM 
  DSHDAY 
WHERE 
  DHSTMP BETWEEN '2009-07-26 00:00:00' AND '2011-03-09 23:59:59' 
GROUP BY 
  YEAR(DHSTMP), MONTH(DHSTMP)
Run Code Online (Sandbox Code Playgroud)

但它告诉我每组有多少行.

如何获取第一个查询将返回的行数?

sql db2

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