2009-12-21 42 views
6

馬茨說:什麼不是「最驚喜」在Ruby中

我設計Ruby來減少出乎我的意料。我想盡量減少編程過程中的挫折感,所以我想盡量減少編程工作量。

但有時我們會在ruby練習中得到(壞)驚喜。

如紅寶石初學者,我發現了一些例子:

  1. 異常線程默認情況下不會產生任何直接的痕跡,我們必須做Thread.abort_on_exception = true或別忘了加入所有線程。
  2. 插座搜索DNS名稱的任何接受的,做BasicSocket.do_not_reverse_lookup = true爲別驚訝被長期拖延
  3. split(regexp)不空字段字符串的結尾分裂所有的字符串
  4. string.trim不明分裂,做split(regexp,-1),使用sting.strip(對於舊的tcl dev ...)

你有沒有其他的情況來改善我的紅寶石實踐?
謝謝。

+0

你在批評Ruby,因爲它不使用Tcl函數名? – Chuck 2009-12-21 16:49:15

回答

2

一個溫柔的筆記,我認爲你是過度延伸最不驚奇的想法。對我來說,你正在延伸馬茨的最小驚喜他的想法至少驚喜,包括你的想法最少的驚喜。請記住,令人驚訝的是,你可能不會感到驚訝,如果它按照你認爲應該的方式工作,可能會讓他們吃驚。儘管如此,最好就您認爲應該如何工作發表意見,因爲我們都可以從中學習,但要說「我們得到(糟糕的)驚喜」將您的驚喜想法擴展到其他人。

對於我來說,所有這些例子都有這樣的感覺,就是您希望這些例程比您的一般情況更適合您的偏好(或應用程序)。

3

紅寶石設計語言是紅寶石的設計不同(其中大部分似乎是你作爲例子使用的)。 Matz圍繞最不驚人的原則設計了語言,但並非每個庫(甚至是Ruby標準庫中的模塊)都是這樣設計的。 (請記住,Matz並沒有自己寫每個Ruby庫,甚至整個Ruby標準庫。)

相關問題