淺談MDA技術未來發展方向
2019-11-18 12:03:39
供稿:網友
一段時間以來,MDA的概念似乎熱起來了,以至于我們看到有人專門的招聘MDA的架構和開發人員,月薪還不錯的。我們也早就看到一些關于MDA的專業網站的成立。
然而,MDA真的是無所不能的“銀彈”嗎?
實際上,MDA的“野心”是如此的大,以至于初看起來如此讓人害怕,讓人擔心成為MDA糟糕的犧牲品,然后失落的擔憂或者極力的也想成為建模專家。
然而對MDA簡單的觀察和思考后,我面帶微笑可以絲毫不擔心她可能帶來的沖擊,盡管潛在的很多打著MDA名號的也有類似概念的自動工具的出現會混淆和占領一些市場并帶來影響,但絲毫不應該擔心她會如她宣稱的那么強大。有幾個問題她無法做到完美,哪怕確實她可以做到一些。(實際上,X-Brave也是類似的工具,也會借鑒一些MDA概念)
首先,建模技術盡管發展迅速并取得一定的成功,但還沒有達到所期望的成功,毫無疑問的,MDA必要的建模技術至少短期內無法奢望取得更大的突破。不太可能MDA的出現會讓建模技術馬上上天,他也不可能超過她也需要的UML的成功。曾經,UML也是那么宣稱會對軟件開發帶來何種的成功,但到今天,即便是我也使用UML2年多了,我也不贊同完全的依靠她,實際上,有時候簡單的一個草圖就是足夠的,若非技術的“表演”,很多圖形很多設計經常只是漂亮的衣服,但只是衣服而已。在中國這個設計實用化的問題更加突出,經常,我們的設計人員已經脫離了代碼實現,而且無論如何很難想象一個設計可以“恰恰”那么恰當!而假設真的可以做到這一點,那么抱歉,我對實現者就會抱著強烈的懷疑。
在軟件設計上,同實現一樣,我主張KISS,但KISS本身和技術高度和難度不矛盾。
其次,業務建模式可能的,但是,標準和標準的推廣是個問題,而且,毫無疑問的,復雜業務建模技術在可預見的將來都不太可能那么完善。而軟件發展的將來復雜度會不斷的增加,很大程度上就包含了業務復雜度的提升。
再次,全面的自動軟件是可能的,但是她不可能做得那么完善:自動化帶來的必然是高度的耦合和固化,而軟件項目根據項目的情況在軟件結構/架構技術方面必然是靈活多變的,試圖以不變應萬變那只不過是甜美的夢想,要做到語言和平臺的獨立,基本上只是天真的夢想。實際上,即便拋開單個語言和平臺的復雜度和潛在變化的深刻洞悉,也毫不可能在林立的語言和平臺之林真正的完成----雖然在某種程度上這時候只是某種程度的技術實現的移植,但即便是這個移植都不太可能。在一個特定的語言和平臺,我也難以想象她如何解決“面向業務”、“面向前臺”的時候的靈活選擇,更不用提在軟件架構里面的“粘合”、“性能”、“分層”問題,而這些恰好體現了軟件設計實現的技術實力和差異。即便可以通過建模技術來“設計”這些要害技術點,也不太可能讓MDA為你完美的實現代碼細節,這是不現實的:同樣的軟件設計,其代碼實現的不同,其差異也是巨大的,而通常,設計也不應該被奢望非常的完備以至于不需要任何的調整。
我想,就是上述的問題已經足夠MDA面對的了,而考慮到這些問題還需要結合到一起,外加那么多新興技術的溶合帶來的技術難度的快速提升,這個時候顯然“1+1>2”的。所以不用擔心MDA對我的影響,盡管我已經是一個設計人員并且始終堅持保留技術路線,即便是旁的人,也絲毫不要擔心所謂的風暴的來臨。
然而,自動化也會發展,并會借鑒MDA的一些思路和想法,并且,耦合和確定領域和邊界的“類MDA”會出現和發展的。