06年5月9日在拉斯韋加斯舉辦了ServerSide Java 會議。會上,Gregor Hohpe對一位Java高手說,每個軟件開發團隊只雇傭最好的最優秀的程序員,這肯定是對的。Google公司軟件架構師Hohpe問道:“又有哪家公司會說我們要雇用不聰明的工程師呢?”他認為不好的程序員肯定是在計算機科學領域中受罪。
不過,Hohpe質疑,假如所有的應用開發項目都使用首回合的草案,他如何才能發現代碼中的缺陷。當他發現代碼中存在“這是個錯誤”或者“需要進行核查”等注釋時,他很不滿意。最佳的最優秀的程序員怎么能夠寫出這樣的代碼和注釋呢?
他一邊不斷重復著自己的關鍵詞,一邊問:“所有漂亮的代碼跑哪里去了?”他用開玩笑的語氣這樣調侃軟件開發:“大概是門衛在半夜進來把我們的代碼搞得亂七八糟吧。”
就像Hohpe所見到的情況一樣,代碼很多時候是被很一般的可以防止的原因搞亂的。其中的首要原因就是拙劣的代碼引起更多拙劣的代碼。他的理論是,如果某個應用程序的最初的開發人員不自己的代碼規劃清晰,讓任何程序員都可以理解,那么潘多拉的盒子就會被打開。
接下來的事情從開發人員編寫代碼開始,即使代碼可以運行,但是代碼本身是很難讓其他程序員理解的。接著,在應用上馬之后,某個程序員要做一年的維護。代碼變成了一堆亂七八糟的東西。
所以,可能第二個做維護的程序員在修改時,會對自己說:“我只在這里添加我的代碼。它不會壞到哪里去的。”
但經過上面這樣的幾輪修改后,原先由最優秀的人編寫的特性代碼,終于變得越來越糟糕。
他向出席ServerSide會議的聽眾提供了一些避免以上事情發生的幾點建議。他說:“被強迫寫出的代碼不會好到哪里去。要讓下一個人覺得你是在花大力氣編寫優雅的代碼。”作為一個架構師,他首先要懂得建模對應用程序的價值。他說,這并不需要很復雜的建模工具,甚至在一張紙上的畫模型都可以有很好的效果。
Hohpe反復強調程序員應該是為人寫代碼,而不是為機器寫代碼。他說:“要對人們交互行為進行建模。當涉及用戶界面時,這一點尤其重要。”他建議向非程序員展示應用程序,來觀察程序員對于程序工作的理解對于潛在的最終用戶是否正確。
他提醒道,所謂的業務邏輯并非總是和程序員所想的一樣。他說:“假如業務邏輯真的和程序員想的一樣,那么就不會這么困難了。這也是為什么說找到最終用戶究竟如何與應用程序交互非常重要的原因。”
他敦促Java程序員利用Java的經驗來編寫設計好的代碼,讓其他程序員覺得優雅。“為人而不是機器編寫代碼”是Hohpe思想的核心。他建議,如果程序員僅僅只為機器寫代碼,那么他們就不需要Java,他們可以回到匯編代碼的時代。
參考資源:
Gregor Hohpe - Where Did All the Beautiful Code Go?在線視頻
Hohpe - Where Did All the Beautiful Code Go?原文下載:[下載文件]
posted on 2006-07-10 00:49
rd2pm 閱讀(117)
評論(0) 編輯 收藏