Benx Blog

三月 3, 2008

你是個有 GUTs 的程式設計師嗎?

Filed under: 開發日誌 — benxshen @ 11:57 上午

這真是蠻好玩的英文縮寫!GUTs: Good Unit Tests

我本來就非常認同 TDD (test first or not)的價值觀以及其所產生的效果,
TDD 應該被當成是學會寫 “Hello World" 之後,就應該被訓練的基本能力,
這樣的能力其實與技術沒有太大的關係,而是一個假設、實驗、證明的過程。

今天這個有趣的縮寫被提出,也許有助於刺激程式開發人員開始更積極地學習 Unit Test,
因為,當有人問到你是不是有 GUTs 時,回答 “No" 其實還蠻傷自尊心的!

我只是覺得這是個有趣的思維,沒有寫出能夠自我驗證的單元測試的程式,
就好像沒有足夠的勇氣與信心去面對自己所寫的程式有可能潛在問題,
我們好像只是沒有根據的樂觀,以為我們寫的程式不會出現任何狀況。
實際上,某支程式只是「在我的電腦上可以跑」而已,但問題是,我們通常並不是最終的使用者!

共勉~

十一月 23, 2007

超越Java!?

Filed under: 開發日誌 — benxshen @ 11:24 下午

Java 已經存在超過十年了,這段時間,他的成就非凡,他徹底改變我們寫軟體的作法和想法。但是 Java 已顯老態,該是時候了,我們得想想未來的接班人是誰。

– 「超越Java」書背簡介摘錄

Damn! 竟然對於 Java 這麼不尊敬,是眼睛瞎了嗎!?多少企業專案和軟體系統都是以 Java 語言做為開發,開發社群當中 Java 的開源專案一拖拉庫,IBM 老大哥傾力支持,JDK 的版本也已經要邁向 7.0 了!這些證據難道不能夠讓作者 Bruce Tate 把話吞回去嗎!我們怎麼可能可以接受這樣的指控 — 老態的 Java 語言的開發者,這真是奇恥大辱!

親愛的朋友,老實說,我並不感到生氣,我還是很喜歡 Java,但我並不感到生氣。

我很清楚明白這其實是兩回事。軟體業界我們所看到的證據,大都指向 Java 是一個成熟、穩定、資源豐富,且成長中的程式語言。但我們之中大部份的人,程式寫起來一點也不感到快樂、不輕鬆,而且還要加班。越多的程式碼並沒有使我們賺得更多錢(如果是這樣倒也好),卻是讓我們花更多時間去收拾爛攤子(除錯、需求修改)。

某些狀況上,我們可以說這個系統的設計可能有問題,雖然大多數我所知道的狀況,其實是我們自己人搞砸的,因為我們不進行重構、不編寫單元測試(我知道我們沒有時間)。然而,另一個可能出現的根本問題是,我們所使用的程式語言沒有辦法幫我們簡單做到。

如果真的是這樣,我們又能如何呢?也許,我們不應該只求答案,而不去看問題,不去瞭解問題背景的形成,不去思考我們應該要面對的挑戰。這本書就是要告訴你這些。的確,Tate 花了一些篇幅介紹了 Ruby 和 Rails,並且在多處提到這個我們不熟悉的「小玩意兒」,卻不是褒揚 Java。我的朋友,我希望這並不會把你的焦點給轉移了,生氣 Tate 竟然喝了咖啡(Java)還說咖啡又苦又酸,只是炫耀剛入手的紅寶石(Ruby)。我誠摯地同意以下這一段評論的話:

不管你同意 Tate 的結論與否,你都會發現這本書相當激勵人心。不管你繼續使用 Java 或改用其他技術,這本書都可以幫助你思考你寫程式的方式、怎樣提高生產力、什麼東西會阻擾你。

– 「超越Java」書背簡介摘錄

我一點都不希望剛學寫 Java 程式的人來看這本書(因為這很可能會有所誤導,以為 Java 真是差勁),也不願意看見 Ruby 陣營的朋友因為這本書而說話特別大聲(因為這只會變成沒有意義的爭戰,以為這就是最後的贏家)。我希望介紹給那些有過幾年 Java 編程經驗的朋友,並且試圖在工作中追尋更本質性的問題所在,然後才會知道哪些方面有可能可以如何地做得更好。我希望我是這樣的人。

 

PS. 我很喜歡每個章節剛開頭 Tate 急流泛舟的經歷談,我更相信「生活經驗即工作經驗」。充實工作的首要之務,就一定是充實生活。(我也想要玩泛舟!!!)

在 WordPress.com 建立免費網站或網誌.