現在的企業應用跟十年前的MIS可是大不一樣了,需求不斷變化,修改沒完沒了。而互聯網應用呢?在變化的劇烈和頻繁方面,與企業應用相比可謂有過之而無不及。這本質上是因為企業在迅速變化,消費者在迅速變化,人們的需求在迅速變化,世界在迅速變化,F在經驗比較豐富的企業開發者越來越達成共識,即事先分析企業應用、對抗需求變更,幾乎肯定是死路一條,不管你采用什么先進的軟件工程方法、建模工具、UML語言,都無法根本解決問題。你所服務的對象自己都天天在變,你怎么可能實現量好人家的需求然后慢吞吞地去添磚加瓦呢?既然無法避免變化,不如適應變化。與其想辦法預見變化,不如讓自己有能力迅速隨需應變,提高自己對變化的反應能力,降低變化帶來的成本。
這已經是共識了,問題在于怎么隨需應變。分歧就在這里了。今天做ASP.NET、J2EE開發的離不開XML,就是為了“隨需應變”,在變更發生時用XML來重新配置系統。以J2EE為例,高水平的J2EE開發者把XML文件越寫越復雜,最后根本就就是把XML當成領域語言來用。說白了,就是把J2EE往上擴展成一個面向領域的引擎,再用一層標準化的、薄博的XML來最后的編程,我稱之為“強引擎,弱腳本”方案。這樣做是有原因的,Java/C#好歹是個編譯語言,變更修改重新部署的成本比較大,所以要配合XML使用。但結果怎么樣?并不理想。首先系統設計難度還是很大,你還是要設計一個強勁的引擎,設計得不好就帶不動XML腳本。而設計這個強勁的引擎還是挺難的,設計錯了修改起來還是挺麻煩的,發布以后也難免還要花大力氣維護的。這問題沒解決多少。
其次,也是我個人最反感的,就是XML的濫用。XML那東西本質上是用來在程序之間進行數據交換用的,是給程序讀寫的,不是給人讀寫的。無論從哪個角度來看,XML對人的閱讀和創作都是非常不友好的。結果為了配合J2EE,硬是趕鴨子上架,讓XML充當DSL,逼程序員去學習讀寫XML這種非常沒有趣味的“語言”,真是不人道。更有甚者,為了使用各種框架、面向各個領域,開發者還很可能要學會多種不同語義的XML方言,而且很多這樣的XML方言根本就沒有經過設計,是土法炮制出來的。兩種截然不同的語言攪和在一個系統里已經夠糟了,更糟的是多種土法炮制的XML方言土語一起攪和在系統里,結果搞得各種語義不同的XML就像癌細胞一樣在程序里擴散,這樣的系統只能用惡心來形容。
總之,這種“強引擎,弱腳本”的方式,我認為是沒有前途的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/