如今誰坐龍位?



某天早晨,我和一個程序員隨便談談,他說,我們的系統變成假3層了。語氣中看來非常寥落。我腦中便一下子跳出這個“龍位”的故事:
 
“民國14年,費孝通到湖南永順考察,當地人問他:‘如今誰坐龍位?’,14年光陰一瞬間,在很多人看來如此重要的政權更迭竟然傳播到如此不堪的狀態。”
 
回頭來說3層。7年前,3-ties開發剛剛興起,但是是否使用3-ties理念的開發是有分歧的。有些人認爲我們的產品UI和數據庫開發更重,中間件可有可無,最多不過可以解決密碼問題而已。有些人認爲3-ties就是業務邏輯集中,這個想法不錯,只要堅持,一定可以有一個合理的中間件。兩者都有各自的說法,但是隨着開發的逐步深入,產品的累次更迭,結果卻毫無疑問的、幾乎是一邊倒的走向了假3層——中間件僅僅有幾個訪問數據庫的方法——和幾十M大小的客戶端,數據庫代碼相比,中間件不過幾百K。規模完全不可同日而語。Delphi是這樣,C# 雖然有不少邏輯,但是和數據庫,客戶端還不比不了的。把訪問數據,分頁除掉,真正的業務代碼少的可憐。大量的業務,驗證,頁面組織都在客戶端和數據庫服務器。
 
相信3-ties有它的用武之地。不過我們的系統是UI密集型,而不是業務密集型,不多的業務也大量的集中於數據庫。因此中間件可有可無這一觀點,在今天看來也就毫無懸念。
 
理論跟不上現實,這是我看到的一種情況。而還有一種讓人扼腕痛惜的是完全不去了解現在業界的狀況,或者知之不多。最近某天,一個程序員問我,客戶提到了什麼Ruby On Rails來訪問我們的系統,Ruby On Rails是個什麼東西?
 
Ruby On Rails(ROR)從2003年開始,紅了N年,並且是N年來最紅的一套框架,沒有之一。可以快速,優雅的實現Web應用,並且有豐富的ajax支持,它把MVC模式做了非常創造性的應用,對整個行業都有很大的思想上的觸動。因爲 ROR 這個框架,腳本語言不再被視爲玩具。第一次登上了和主流編譯型語言同等高度上。網上可是鬧翻天了的,隨便那個技術型網站都會長篇累牘的講到這個東西,並且持續時間之久,論壇的火爆程度,都是以往的框架所不及的。可是,居然有人對 ROR 聽都沒有聽過。我不知道他們上網都看些什麼?作爲一個技術人員,難道可以只是完成自己手裏的工作就萬事大吉了嗎?微軟最近出品的Asp.net MVC2,就是徹頭徹尾的對ROR的抄襲——我理解這是對ROR的禮讚。
 
可能有些人覺得,這個我們用不上,不需要費心去了解。那麼TDD,Refactor,尤其是Refactor 總是要用的吧。我覺得TDD,Refactor紅了這麼多年,身邊的人也用了這麼多年,完全說明是非常實用的技術,TDD讓代碼更好的分而治之。Refactor幫助代碼職責明確,符合OO和最佳實踐的範式,讓接受代碼的人不會再說“這是什麼垃圾代碼”。自己的工作完全和業界脫節,甚至和其他的項目組脫節,這是怎樣的“碎片”生活?好,我在說一次它們的含義:TDD(Test driven development,測試驅動開發),Refactor(重構)。也順便了解下它們的創始人,Kent beck,Martin Fowler。
 
過了這麼多年,還是侷限於“業務更重要,技術是手段”,唸叨什麼,“滿足客戶是最重要的”已經過時了。你認爲你是需求人員嗎 ,你認爲你是客服人員嗎?不,你是技術人員,你的職位名稱告訴你:技術從來都不是附屬於那個的,它有獨立的生命週期,技術是你滿足客戶的首要的和持續的方法。唸叨什麼“太忙了,沒有時間啊”也是過時了的——難道不就是因爲忙所以才需要改進技術,改進方法嗎?這樣的非此即彼的思維,是令人厭倦的。
 
 
比起前兩種狀況更危險的不是不知道,而是不知道自己不知道。某公司做了5年的TDD,Refactor嘗試,你總是認爲那是某公司的事情,某個項目組做了一年,看來前一個你不能用了,現在我幫你想一個藉口——那是他們的事,和我們沒有關係。讓你們嘗試任何新東西都是這樣推,那樣躲的。你是不想做嗎?是不能做嗎?你到底在怕什麼?所以我說,你不知道自己不知道。你缺乏改變的勇氣,害怕處於他人的觀察之下可恥的失敗,並且不知道自己缺乏面對失敗的勇氣。這就是事實。
 
芝蘭之室,久而不知其香;入鮑魚之市,久而不知其臭。現在我告訴你,你處於鮑魚之市,是臭的。你說我習慣了,不覺得臭,也不願意暫時換口好空氣,回頭再來——那就是你的錯了。我們用的InstallShield,VSS都是網上有名的垃圾軟件,僅僅是因爲歷史久,資格老而活下來。現在我說他們就是垃圾,而你說習慣了,無所謂。這是什麼邏輯?
 
引用一同事在feiq上面的簽名:我爲成功而生,不爲失敗而活。 我爲勝利而來,不向失敗低頭。我要歡呼慶祝,不要吸泣哀訴。
 
請拿出你的勇氣,面對你不熟悉的事物,讓它成爲你的朋友。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章