盡管抽象機制就象Joel說的一樣,都是帶有漏洞性質(zhì)的,但是對于軟件行業(yè)總體而言,應(yīng)該說仍然是有利的,盡管它使得高手越來越強,而新手則越來越弱,抽象機制給業(yè)界帶來的好處是很明顯的,象Webwork、Struts、Hibernate等等,但這些東西同時也會帶來一個問題,就是維護(hù)問題,特別是當(dāng)整個業(yè)界的思想還沒有同步的時候,就會變得比較麻煩了,不知道大家怎么看呢?
例如在項目中使用Hibernate的時候,到了維護(hù)階段會發(fā)現(xiàn)如果要改變表結(jié)構(gòu)是一件挺麻煩的事,都需要懂Hibernate的程序員去做維護(hù)才行,還有更典型的就是通常會由維護(hù)人員去通過改動sql來實現(xiàn)用戶新的查詢方式的需求等,為什么說使用Hibernate會使維護(hù)工作變得麻煩呢,這是因為現(xiàn)在業(yè)界中大部分的人員還處于對sql熟悉,而非對hql熟悉的情況,盡管看起來好像學(xué)習(xí)這步挺簡單,但事實上這個問題是存在的,而且非常明顯,所以在目前的情況下在那種維護(hù)情況比較多的項目中使用Hibernate確實不是那么的適合,從這點去看,會發(fā)現(xiàn)改變一個層次的架構(gòu)思想確實會帶來很多的問題,在項目之初設(shè)計師是有責(zé)任去做一個符合項目需求的抉擇的,^_^,盡管維護(hù)費對于商業(yè)策略來講不是什么壞事,不過也得用戶和軟件公司承受得了。
這就像很多公司選用struts而非webwork一樣的,選用何種技術(shù)是要根據(jù)具體情況來決定的(^_^,典型的廢話),技術(shù)本身往往不是決定性的因素,畢竟其實基礎(chǔ)架構(gòu)思想是一樣的,只是工具實現(xiàn)的效果因為工具開發(fā)商有所傾向而已,對于技術(shù)人員來說,最重要的是掌握思想,不要讓自己被工具帶著走,而導(dǎo)致竟然是被工具淘汰。
其實所有的高度抽象機制一定程度上都會帶來這個問題,只是目前的項目維護(hù)一般來說都停留在這個階段,超出這個階段的部分要程序開發(fā)人員來負(fù)責(zé)也是很正常的,畢竟象功能擴展或新增這種通常來講是不太可能讓維護(hù)人員來做的。
Internet時代的軟件來臨了?
google推出了自己的googlespreadsheets(http://www.google.com/googlespreadsheets),web版的excel,^_^,google要進(jìn)攻office地帶了,典型的internet性質(zhì)軟件概念,其實之前ms的live戰(zhàn)略也是一種對于internet時代軟件的商業(yè)運作模式需要改變的認(rèn)同,以后的機器只要能上網(wǎng),什么軟件都不用裝,多好,internet版的CRM,估計大家也聽說過,一種完全的具備internet時代軟件商業(yè)運作的模式,整個軟件界也許都要因為這個做出一定的改革。
覺得我們這代java軟件從業(yè)人員是很幸運的,高度的抽象機制還在建立的過程中,有望參與到其中;軟件的建設(shè)思想在改革中,web 2.0、OSGI;軟件的商業(yè)運作模式在改變中,從傳統(tǒng)的銷售軟件的模式改為internet軟件商業(yè)模式。既然擁有這樣的運氣,我們是不是應(yīng)該做點什么呢?.........