robot
最新文章(10)
Mqskit 和其它相關工具
CPython 的 GC 二、三事
寫 Mecurial Extension 是件快樂的事!
Mozilla 台灣辨公室徵人啟事
關於 Apple 的兩項專利
core dump 之前的 frame
怎麼發出 beep 聲?
先承認你要找的是奴才吧!
程式碼要清的多乾淨?
FreeBSD 的 Thread-Local Storage 實作
首頁
新編
最新留言
Entries RSS
重要關鍵字(10)
coding (122)
Python (93)
FreeBSD (71)
WEB (61)
URL (48)
hardware (46)
javascript (36)
Linux (34)
blog (30)
C++ (16)
所有關鍵字
新增 URL
談「 Sparse is better than dense 」
by thinker
2 Columns
關鍵字:
coding
在 linkname:[PEP 20 - The Zen Of $Python$] http://www.python.org/dev/peps/pep-0020/ 有一句提到,「 Sparse is better than dense 」。這裡舉個例,計算 linkname:[standard deviation] http://en.wikipedia.org/wiki/Standard_deviation {{{#!python import math def standard_deviation(data): return math.sqrt(sum([d * d for d in data]) / len(data) - ((sum(data) / len(data)) ** 2)) }}} 還不如 {{{#!python import math def standard_deviation(data): mean = sum(data) / len(data) pow2_mean = sum([d * d for d in data]) / len(data) variance = pow2_mean - (mean ** 2) return math.sqrt(variance) }}} 假設之前沒看過 standard deviation 公式,雖然前面的 implementation 較簡短,但後面的方式,對於讀者而言,更容易理解。這也是為什麼 Sparse is better than dense 後面是接著 readability count 這一句,閱讀性必需擺在優先,除非該段程式碼有特別的 performance 需求。就算程式碼只有自己會看,但又如何保證自己回頭看時,不會忘了什麼是 standard deviation ?把效能問題丟給 compiler 吧! 除非 compiler 無法產出可接受的效能。 另外,在 debug 時,如果公式的某一項出錯時,前面的寫法不容易 debug。而後面的方式,因為每一項式都成獨立的一行,容易用 debugger 檢視,或者用 alert message 也很方便。
最後更新時間: 2007-02-26 12:13:02 CST |
引用
查詢:
COMMENTS: