軟件思想的進化和相通
我知道的軟件思想至今發展的主要過程:面向過程 -》OO-》DDD-》DCI
始終是一個進化的過程,OO解決了面向過程的封裝,但他依然是基于靜態的分析;DDD提供了面向應用業務的分析指導,但是他沒有直接提供解決對象變化的指導;DCI提供了系統模型分析的指導,他沒有解決。必然有,但我還沒有看到。
思想是漸進式的,對于思想的理解也是漸進的。
OO開始提供了思想基礎但是缺少實踐方式,在以后的時間里他始終影響著軟件的思考方式。DCI的上下文中角色的轉變其實也源于此。在傳統上我們分析了角色的職能,但是往往忽視了“本體”與“角色”間的區別,從而得到了一個本體中需要實現多個角色的分析結果也是困惑。
DCI中說明了在不同的上下文中本體的角色是可以被替換的,這樣本體和角色又再次成為了分隔的獨立,互不依賴。如果角色可以在運行時刻被賦予本體,那么AOP、SOA與DCI也建立了關聯,同時IOC也成為了將本體組裝角色的實踐。在各個思想和實踐方式中對的內容將共同的被保留和進化,并最終必然的找到契合點。
我認為軟件可以理解位自然世界的映射,所有需要軟件解決的問題和解決方法必然存在于自然世界中,OO表達了這樣的思想。OO是基礎和思想的源泉,同時在今后很久(或者***,除非誕生了全新的軟件實踐方式)都將是我們思想基礎。后來者在研究和學習各種名詞和思想之前應該認真深入的思考OO,如果在這個步驟上出現了失誤和偏差在后面的過程中彌補是需要付出很多代價的。
希望通過本文的介紹,能給你帶來幫助。
【編輯推薦】