Archive

Archive for the ‘Software Engineering’ Category

為什麼要寫 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

軟體開發技巧的待讀書單

March 15th, 2009

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

( Read more… )

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

TDD 推廣:結語和參考資料

March 10th, 2009

前篇,這篇說明我和組員近兩週開發過程中的心得,並附上幾篇不錯的參考資料。

( Read more… )

fcamel All, Programming, Software Engineering, Testing

TDD 推廣:相關工具

March 10th, 2009

前篇,這篇說明我近兩週開發過程中選擇工具的心得。

( Read more… )

fcamel All, Programming, Software Engineering, Testing

TDD 推廣:影響和個案心得

March 10th, 2009

前篇,這篇談 TDD 帶來的改變,以及我自己的個案心得。

( Read more… )

fcamel All, Programming, Software Engineering, Testing

TDD 推廣:背景知識和簡介

March 9th, 2009

之前我曾獨自一人用 TDD (Test Driven Development,中譯為測試驅動開發) 的方式,分別用 Python 和 C++ 各寫了一千多行的小程式,感覺滿好的。最近剛好有機會寫一個新專案,就趁這機會開始第三次的 TDD 練習。和前兩次不同的是,這次要和一位組員合作,以 Java 開發。看來正是測試 TDD 威能的最好時機。

( Read more… )

fcamel All, Programming, Software Engineering, Testing

獨立思考體系

December 29th, 2006

上篇《管理學和實戰經驗》《資訊分享.無可取代的能力?》點出類似的廢話結論,以管理來說,如果下面這句是對,那我的優勢何在,大家立足點都一樣吧?

管理本來就是由人而來的,最好的做法還是到人群中學習

答案還是像廢話,獨立思考。

( Read more… )

fcamel All, Life, Research, Software Engineering

管理學和實戰經驗

December 29th, 2006

我認識三位想從事管理的朋友,剛好背景差異很大,綜合他們和我本身的心得,整理出一些想法。

大二時我觀察自己平日打混做的事,發現大多集中在軟體工程,於是決定要走軟工的路,但後來發現軟工不適合在學界混,它只是種概念無法證明,本質很務實,研究起來卻不夠務實,於是我封殺這條路,將它當興趣,後來陸續發現不少學長也這麼想,了解軟工而把它當興趣,而非研究主修。我滿愛找人合作參加比賽,或修開在研究所的課,通常要三五人一起coding一學期,誤打誤撞補了些實戰經驗,更誤打誤撞的在大一大二時看了XP的書和《人月神話》,那時有所體會,每次回顧合作coding和書的內容,又有新的體悟。

( Read more… )

fcamel All, Management, Software Engineering

The Joel Test: 12 Steps to Better Code

December 29th, 2006

看到kgo轉中文翻譯的12項目到個版上,想到以前有看過這篇,拿出來備忘一下。光看12項目可能不懂它在說什麼,對照原文看就清楚多了。

一半的項目在強調隨時保有所有(過去、現在、”未來”)可執行的程式碼,讓程式能還原到任一階段,並且是能動的程式,觀念和XP相通。

出處

1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions?
9. Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?

fcamel All, Software Engineering

開發速度和執行效率的取捨

December 22nd, 2006

最近發現在學弟版上回的問題,比我自己版上po的東西有營養多了 XD,有些回文改改就適合放在Blog上分享。這篇是討論技術層面的軟工,人事管理的軟工請見”軟體開發與管理的思維:人月神話”

( Read more… )

fcamel All, Programming, Software Engineering