Posted on 2007-01-03 16:10
canonical 閱讀(845)
評論(1) 編輯 收藏 所屬分類:
設計理論
? 幾年前Michael Atiyah受邀在浙江大學做過一個講演,題目是Mathematics in the 20th Century,
http://www.cnw3.org/smth/Mathematics/historiesandmathmaticians/goodessays/00000035.htm, 在其中他回顧了二十世紀的主要的數學發展。被他列在第一條的進展就是From Local To Global. 在傳統上,數學的主要研究對象是一些得到顯性表達的局部公式,而拓撲學對于整體性的“不變性質”的研究最終將我們對于數學和物理學的理解推進到一個新的高度。我想在其他領域中,這種認識上的深化也將是一個必然的過程。隨著AOP這種大范圍結構操縱技術的興起,軟件技術是否也發展到了可以對程序的整體結構做一些反思的時候?
? 面向對象有什么用?它是在各個層面都可以使用的一種描述工具。從一些早期的文獻我們可以看出一些端倪,一種整體性的均一的概念是我們迫切需要的。對象可以構成對象,Everything is Object. 只是因為我們對這些太熟悉以致于在今天看來顯得有些陳腐。很多人現在津津樂道于CoC(Convention over Configuration)作為一種局部程序設計技巧所帶來的可以少些一些代碼的經濟性,卻沒有看到CoC更大的作用在于在大范圍內保持了程序結構的一致性,使得某些輕靈的設計可以在框架層面得以展現。目前的框架技術更多的是在各個層面各自為戰,如何將同樣的信息從局部傳播到整體是一個耐人尋味的問題。
?? 傳統上的程序世界缺乏一些具體的技術手段使得我們可以方便的觸及到程序的整體結構部分,這些整體性的關聯更多的是存在于文檔中,存在于我們的思想中,存在于程序表達世界之外。而AOP技術從本質上說也只是方便在各個層面實現某種局域化的抽象。 當某些東西被拘束在某個具體的孤立的點中的時候,我們似乎就可以松一口氣了。但是在程序中仍然存在著大量"弱"的關聯,它們很難被清晰的局域化。模型(Model)和Meta必然在程序構建的過程中扮演愈加重要的角色。AOP只是一種技術手段,它必須和更加寬廣的框架技術和模型構建技術結合才能起到最大的作用。???