什么不是Ruby中的“最少惊喜”

时间:2009-12-21 11:00:43

标签: ruby

马茨说:

  

我设计了Ruby以减少我的意外。我希望尽量减少编程期间的挫败感,因此我希望尽量减少编程工作。

但有时我们会在红宝石练习中感到惊讶。

作为红宝石的初学者,我找到了一些例子:

  1. 异常线程默认情况下不会产生任何立即的痕迹,我们必须Thread.abort_on_exception = true或不要忘记加入所有线程。
  2. 套接字搜索任何接受的dns名称,BasicSocket.do_not_reverse_lookup = true为长期延迟不要惊讶
  3. split(regexp)不要在字符串末尾拆分空字段,执行split(regexp,-1)拆分所有字符串
  4. string.trim未知,请使用sting.strip(对于旧的tcl dev ...)
  5. 你有其他案例可以改善我的红宝石习惯吗? 谢谢。

2 个答案:

答案 0 :(得分:3)

Ruby的设计语言与Ruby 的设计不同(它们似乎主要用作示例)。 Matz围绕最小惊喜的原则设计了语言,但不是每个库(甚至是Ruby标准库中的模块)都是这样设计的。 (请记住,Matz本人并没有编写每个Ruby库,甚至整个Ruby标准库。)

答案 1 :(得分:2)

温和的说明,我认为你过度扩展了最不惊讶的想法。对我而言,你正在扩展Matz的最小惊喜,因为他的最不惊讶的想法包括你的最少惊喜的想法。请记住,令您惊讶的是,如果它按照您认为应该的方式工作,可能会让他们感到惊讶。所有这一切,说出你认为它应该如何运作的意见是好的,因为我们都可以从中学习,但是说“我们得到(坏)意外”是将你的惊喜想法扩展到其他人。

就我而言,所有这些示例都让您觉得这些示例比一般情况更适合您的偏好(或应用)。