十二月 16, 2013
» The Art of Design

為甚麼好的設計會來自於差的設計呢? Scott 在 Why Good Design Comes from Bad Design 提到攻讀 CMU Computer Science 博士時選了門介面設計課,第一堂課上他發現一位年輕人素描著隨身聽的各種變異版本,而且圖紙上已經堆積了三、四十種不同考量的版本了。 Scott 於是湊過去問這個小伙子「幹嘛費勁畫那麼多草稿?」,小伙子發楞了好一會才笑著回說: I don't know what a good idea looks like until I've seen the bad ones. 經過時日洗煉, Scott 後來也體會到當初認為多餘的作法,其背後的精神,他提到: Each new idea I sketched out was more informed than the last. Each bad idea

七月 4, 2009
» Two Ways to Solve a Problem

這些年下來,我反覆觀察到一個現象:程式員各有一套慣用的方法來克服自己遭遇到的問題,這些解題習慣可區分成兩種,工程師多只專精其一,只有少數能任意在兩者間自在地切換。 在很多情況下,無論程式員採用哪種作法,都可輕易把問題解掉;但是另有一些問題,卻不是這樣隨性而為就解得掉的--這就值得我們好好玩味了…… 以 1..n 的正整數相加這個例子來說,我知道程式員應該利用現成的副程式,以爬說語來寫,應該要長成這樣: n = 100 y = sum(range(1, n+1)) 假裝我們沒有現成的,像 sum 這樣的副程式可用。那麼,一種可能的寫法如下: y = 0 for i in range(1, n+1): y += i 這是標準的合成(Synthesis)法。以這個例子來說,如果不考慮時間複雜度要 O(n) ,這個方法其實

biggo.com.tw

A Django site.