為什麼要寫 unit test?為什麼要先寫測試?

June 13th, 2009

這篇說明寫 unit test的好處,以及為何先寫 unit test 再實作,比實作完再補 unit test 更好。這裡先列出摘要:

  • 測試碼可以簡省手動測試的時間,但有錯時無法告訴我們錯誤的源頭在那。
  • unit test 可以告訴我們錯誤的源頭在那,可是 unit test 有時間成本和維護成本。寫過多 unit test 反而有害。
  • TDD 藉由先寫測試避開 unit test 的成本問題,並帶來其它好處。

( Read more… )

fcamel All, Programming, Software Engineering, Testing

以有涯逐無涯,殆矣。

May 11th, 2009

近幾個月學習狀況不錯,學習效率好也能持久,但總覺得愈學愈多,愈學愈累,偶爾會有種茫然的挫折感。忽然想到莊子的這句:

吾生也有涯,而知也無涯。以有涯逐無涯,殆矣。

原本我曲解了這段話,還振奮了一下,想說要更認真地追求知識。忽然,我發現莊子的本意反而是點出恰到好處的生活方式,於是我的世界改變了。

( Read more… )

fcamel All, Life, 格言錦句

空之軌跡

May 2nd, 2009

如果不全破的話,是不是故事就可以持續下去永不結束?玩完《空之軌跡》系列後,這樣的想法浮現在我腦裡。這是去年十一月、十二月的事了,愈是喜歡一個作品,愈難下筆。

FC

( Read more… )

fcamel ACG, All, Game

Python 排序的技巧

May 1st, 2009

用 Python 排序時相較於 C、Java 多了效率議題。由於 Python 內建函數 (built-in function) 是用 C 實作的,排序時盡可能用內建函數效率會快上不少,詳細的數據比較可以參見 Python Cookbook,這篇做個簡單的整理。

( Read more… )

fcamel All, Programming, Python

關西行:廁所大賞

April 28th, 2009

從日本玩回來都快過一年了遊記還沒完成,還是直接寫最有興趣的這篇,剩下的就隨意吧。

( Read more… )

fcamel All, Travel

寫 Blog 好幫手 TD-Post!

April 25th, 2009

為了方便寫 Blog,寫了個小程式讀 wiki code 產生 WordPress 吃的格式,順便藉機練習 TDD,沒想到寫了十小時才完成。剛好最近在看虎x龍的動畫,就將它命名為TD-Post (Tiger x Dragon Post) 吧。

( Read more… )

fcamel All, Blog, Programming, Python, Testing, Web, Wiki

中翻英,線上翻譯測試 - Google Strikes Back!

April 22nd, 2009

( 這篇寫於 2008-10-26,不知為啥從 Blog 裡消失了,所幸 Google Reader 裡有備份。 )

剛才無聊看看 Google Analytics ,發現本站最熱門的文章還是那篇《中翻英,線上翻譯測試》,我不知該說什麼,這不是件令人高興的事啊。總之,一時興起又來測看看。

( Read more… )

fcamel All, English, Fun, Google, 中文

強化 Python 在 Vim 裡的顏色

April 22nd, 2009

我習慣用 putty 連 Unix server 開 screen,再用 vim 寫 Python。這篇記錄如何改善 Python 的顏色。

( Read more… )

fcamel All, Programming, Python, System, VIM

最近用 Python + TDD 心得(與 Java 做對照)

April 19th, 2009

最近又用 Python 寫了些程式,剛好和之前用 Java 進行 TDD 做個對照。

( Read more… )

fcamel Programming, Python, Refactoring, Testing

軟體開發技巧的待讀書單

March 15th, 2009

經過這陣子的評估,終於列出了夢幻般 (?) 的讀書清單。我的做法是先在網上看到有人推薦,到書局翻一陣子,再回來查 Amazon 的評論,最後決定是否有必要看。附帶一提,待這書單決定後又查了一下,結果發現每本書都有得到 Jolt Award,一瞬間好像以為 Jolt Award 不值錢了 :-)。

( Read more… )

fcamel All, Java, Programming, Refactoring, Software Engineering, Testing