摘要: 這篇文章說的很好,和大家分享一下,可能一些實戰(zhàn)的朋友并不喜歡這種理論的東西,可以不看,這篇文章把軟件體系結(jié)構(gòu)和建筑學類比,形象化了體系結(jié)構(gòu)設(shè)計。文章提到算法和數(shù)據(jù)結(jié)構(gòu)有擴張和取代SA的可能,個人覺得有點欠妥,算法和數(shù)據(jù)結(jié)構(gòu)畢竟是解決細粒度的問題,而體系結(jié)構(gòu)最初從算法和數(shù)據(jù)結(jié)構(gòu)脫離出來,形成一抽象的分析層次,就是因為軟件越來越復(fù)雜,單憑算法和數(shù)據(jù)是很難解決問題的。算法數(shù)據(jù)結(jié)構(gòu)和體系結(jié)構(gòu)應(yīng)該是屬于不同的層次解決不同的問題罷了。文章也提到了黑盒復(fù)用和白盒復(fù)用的概念,強調(diào)了軟件體系結(jié)構(gòu)設(shè)計的意義。不過個人并不同意“軟件體系結(jié)構(gòu)是一個高層次上的抽象,它并不涉及具體的系統(tǒng)結(jié)構(gòu)(比如B/S還是C/S),也不關(guān)心具體的實現(xiàn)。”筆者這句話,B/S和C/S 其實是一種設(shè)計風格,是軟件體系結(jié)構(gòu)的設(shè)計模式,其實模式的目的就是重用。在實際的架構(gòu)設(shè)計中你不僅要可慮體系結(jié)構(gòu)設(shè)計風格、框架以及復(fù)用構(gòu)件等等,你也要考慮實現(xiàn)的技術(shù)和關(guān)鍵點的決策,這些都是需要在開發(fā)前期確定的。所以軟件體系結(jié)構(gòu)是高層抽象是不關(guān)心實現(xiàn),但是他要涉及到具體的系統(tǒng)結(jié)構(gòu)。
閱讀全文
閱讀全文