圖 1. 模式與反模式(摘自 Brown 等的“Antipatterns: Refactoring Software, Architectures, and PRojects in Crisis”) QQread.com 推出各大專業(yè)服務(wù)器評(píng)測(cè) linux服務(wù)器的安全性能 SUN服務(wù)器 HP服務(wù)器 DELL服務(wù)器 IBM服務(wù)器 聯(lián)想服務(wù)器 浪潮服務(wù)器 曙光服務(wù)器 同方服務(wù)器 華碩服務(wù)器 寶德服務(wù)器 了解不同的面向服務(wù)的體系結(jié)構(gòu) (SOA) 反模式,這些反模式對(duì)通常出現(xiàn)的會(huì)產(chǎn)生確定性負(fù)面結(jié)果的情形或解決方案進(jìn)行了描述。隨著越來越多的企業(yè)開始大舉從 Web 服務(wù)轉(zhuǎn)向 SOA,引入、采用和成功實(shí)現(xiàn) SOA 方面的各種障礙變得越來越明顯。其中一些障礙與導(dǎo)致過去的要害活動(dòng)失敗的因素類似;而其他障礙則是 SOA 特有的。對(duì)這些障礙和最差實(shí)踐進(jìn)行記錄,將幫助顧問、架構(gòu)師和專業(yè)人員不再犯同樣的錯(cuò)誤,并學(xué)習(xí)如何避免這些問題的發(fā)生。此處匯集和說明的反模式是由作者通過作為 IBM 架構(gòu)師的個(gè)人經(jīng)驗(yàn)、研究過去和當(dāng)前的 SOA 應(yīng)用案例以及通過分析那些參與客戶 SOA 應(yīng)用的技術(shù)先驅(qū)提供的信息而得到的。 模式與反模式“示例不是另一種學(xué)習(xí)的方法,而是學(xué)習(xí)的唯一方法。”——阿爾貝特•愛因斯坦模式和模式語言捕捉并正式地將良好設(shè)計(jì)和基于經(jīng)驗(yàn)的最佳實(shí)踐系統(tǒng)化,以供其他人員對(duì)其進(jìn)行重用。它們成功而清楚地表述了常見問題及其解決方案。總的來說,常見概念、描述這些概念的詞匯以及將其聯(lián)系在一起的語言是所有采用這些設(shè)計(jì)和實(shí)踐的學(xué)科和領(lǐng)域的基礎(chǔ)。Christopher Alexander 關(guān)于建筑物和城市設(shè)計(jì)的研究通常被認(rèn)為是基于模式的思維最早的成果(請(qǐng)參閱參考資料)。他提出了術(shù)語“模式語言”,以此代表他認(rèn)為人類進(jìn)行設(shè)計(jì)的能力和使用語言的能力都是天生的這一信念。很多學(xué)科都在使用模式和模式語言的概念,包括從生理學(xué)和流程到項(xiàng)目治理和軟件工程等領(lǐng)域。在 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(經(jīng)常將他們稱為 Gang of Four)的“Design Patterns: Elements of Reusable Object-Oriented Software”一書出版后,軟件設(shè)計(jì)模式得到了廣泛的認(rèn)可和使用。軟件社區(qū)目前正使用模式來解決在軟件生命周期中碰到的不斷重復(fù)的問題,包括軟件體系結(jié)構(gòu)和設(shè)計(jì),以及近來的軟件開發(fā)流程和拓?fù)洹_@些模式全面捕捉了一個(gè)知識(shí)體系,以標(biāo)識(shí)我們對(duì)可以實(shí)現(xiàn)設(shè)計(jì)良好的軟件解決方案的結(jié)構(gòu)和機(jī)制的理解。模式經(jīng)常被定義為“泛型化的、命名的問題到解決方案的映射”。它捕捉在特定環(huán)境中重復(fù)出現(xiàn)的問題的成功解決方案。通常使用與表 1“模式模板”中描述的模板類似的模板來記錄軟件模式。表 1. 模式模板內(nèi)容說明名稱:用于進(jìn)行標(biāo)識(shí)的名稱問題:在領(lǐng)域中重復(fù)出現(xiàn)的問題解決方案:該問題的最佳實(shí)踐解決方案結(jié)果:所建議的解決方案的優(yōu)點(diǎn)和缺點(diǎn)示例一些已經(jīng)應(yīng)用了所建議的解決方案的示例軟件模式提供了一個(gè)在架構(gòu)師和設(shè)計(jì)人員中捕捉知識(shí)和經(jīng)驗(yàn)的機(jī)制。它們提供了一種公共語言,可促進(jìn)對(duì)其他地方成功應(yīng)用的方法的重用,從而為軟件項(xiàng)目帶來以下方面的好處:風(fēng)險(xiǎn)更低、質(zhì)量更好且交付時(shí)間更短。而在另一方面,反模式則記錄出現(xiàn)錯(cuò)誤的情況。對(duì)數(shù)百個(gè)軟件開發(fā)項(xiàng)目的各種調(diào)查勿庸置疑地證實(shí)了軟件開發(fā)會(huì)出現(xiàn)錯(cuò)誤(實(shí)際上經(jīng)常是這樣)。研究表明每六個(gè)項(xiàng)目中就有五個(gè)會(huì)不成功:交付遠(yuǎn)遠(yuǎn)超過預(yù)期預(yù)算、嚴(yán)重滯后或被取消。這就表明可能(至少)值得投入精力研究一下老是失敗而很少成功的原因(注重 Bitter Java 的作者 Bruce Tate 在他的 developerWorks 文章中說明了為什么反模式是設(shè)計(jì)模式的必要和互補(bǔ)的同伴——有關(guān)更多信息,請(qǐng)參閱參考資料)。
圖 1. 模式與反模式(摘自 Brown 等的“AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis”)了解不同的面向服務(wù)的體系結(jié)構(gòu) (SOA) 反模式,這些反模式對(duì)通常出現(xiàn)的會(huì)產(chǎn)生確定性負(fù)面結(jié)果的情形或解決方案進(jìn)行了描述。隨著越來越多的企業(yè)開始大舉從 Web 服務(wù)轉(zhuǎn)向 SOA,引入、采用和成功實(shí)現(xiàn) SOA 方面的各種障礙變得越來越明顯。其中一些障礙與導(dǎo)致過去的要害活動(dòng)失敗的因素類似;而其他障礙則是 SOA 特有的。對(duì)這些障礙和最差實(shí)踐進(jìn)行記錄,將幫助顧問、架構(gòu)師和專業(yè)人員不再犯同樣的錯(cuò)誤,并學(xué)習(xí)如何避免這些問題的發(fā)生。此處匯集和說明的反模式是由作者通過作為 IBM 架構(gòu)師的個(gè)人經(jīng)驗(yàn)、研究過去和當(dāng)前的 SOA 應(yīng)用案例以及通過分析那些參與客戶 SOA 應(yīng)用的技術(shù)先驅(qū)提供的信息而得到的。 模式與反模式“示例不是另一種學(xué)習(xí)的方法,而是學(xué)習(xí)的唯一方法。”——阿爾貝特•愛因斯坦模式和模式語言捕捉并正式地將良好設(shè)計(jì)和基于經(jīng)驗(yàn)的最佳實(shí)踐系統(tǒng)化,以供其他人員對(duì)其進(jìn)行重用。它們成功而清楚地表述了常見問題及其解決方案。總的來說,常見概念、描述這些概念的詞匯以及將其聯(lián)系在一起的語言是所有采用這些設(shè)計(jì)和實(shí)踐的學(xué)科和領(lǐng)域的基礎(chǔ)。Christopher Alexander 關(guān)于建筑物和城市設(shè)計(jì)的研究通常被認(rèn)為是基于模式的思維最早的成果(請(qǐng)參閱參考資料)。他提出了術(shù)語“模式語言”,以此代表他認(rèn)為人類進(jìn)行設(shè)計(jì)的能力和使用語言的能力都是天生的這一信念。很多學(xué)科都在使用模式和模式語言的概念,包括從生理學(xué)和流程到項(xiàng)目治理和軟件工程等領(lǐng)域。在 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(經(jīng)常將他們稱為 Gang of Four)的“Design Patterns: Elements of Reusable Object-Oriented Software”一書出版后,軟件設(shè)計(jì)模式得到了廣泛的認(rèn)可和使用。軟件社區(qū)目前正使用模式來解決在軟件生命周期中碰到的不斷重復(fù)的問題,包括軟件體系結(jié)構(gòu)和設(shè)計(jì),以及近來的軟件開發(fā)流程和拓?fù)洹_@些模式全面捕捉了一個(gè)知識(shí)體系,以標(biāo)識(shí)我們對(duì)可以實(shí)現(xiàn)設(shè)計(jì)良好的軟件解決方案的結(jié)構(gòu)和機(jī)制的理解。模式經(jīng)常被定義為“泛型化的、命名的問題到解決方案的映射”。它捕捉在特定環(huán)境中重復(fù)出現(xiàn)的問題的成功解決方案。通常使用與表 1“模式模板”中描述的模板類似的模板來記錄軟件模式。表 1. 模式模板內(nèi)容說明名稱:用于進(jìn)行標(biāo)識(shí)的名稱問題:在領(lǐng)域中重復(fù)出現(xiàn)的問題解決方案:該問題的最佳實(shí)踐解決方案結(jié)果:所建議的解決方案的優(yōu)點(diǎn)和缺點(diǎn)示例一些已經(jīng)應(yīng)用了所建議的解決方案的示例軟件模式提供了一個(gè)在架構(gòu)師和設(shè)計(jì)人員中捕捉知識(shí)和經(jīng)驗(yàn)的機(jī)制。它們提供了一種公共語言,可促進(jìn)對(duì)其他地方成功應(yīng)用的方法的重用,從而為軟件項(xiàng)目帶來以下方面的好處:風(fēng)險(xiǎn)更低、質(zhì)量更好且交付時(shí)間更短。而在另一方面,反模式則記錄出現(xiàn)錯(cuò)誤的情況。對(duì)數(shù)百個(gè)軟件開發(fā)項(xiàng)目的各種調(diào)查勿庸置疑地證實(shí)了軟件開發(fā)會(huì)出現(xiàn)錯(cuò)誤(實(shí)際上經(jīng)常是這樣)。研究表明每六個(gè)項(xiàng)目中就有五個(gè)會(huì)不成功:交付遠(yuǎn)遠(yuǎn)超過預(yù)期預(yù)算、嚴(yán)重滯后或被取消。這就表明可能(至少)值得投入精力研究一下老是失敗而很少成功的原因(注重 Bitter Java 的作者 Bruce Tate 在他的 developerWorks 文章中說明了為什么反模式是設(shè)計(jì)模式的必要和互補(bǔ)的同伴——有關(guān)更多信息,請(qǐng)參閱參考資料)。
圖 1. 模式與反模式(摘自 Brown 等的“AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis”) QQread.com 推出各大專業(yè)服務(wù)器評(píng)測(cè) Linux服務(wù)器的安全性能 SUN服務(wù)器 HP服務(wù)器 DELL服務(wù)器 IBM服務(wù)器 聯(lián)想服務(wù)器 浪潮服務(wù)器 曙光服務(wù)器 同方服務(wù)器 華碩服務(wù)器 寶德服務(wù)器 了解不同的面向服務(wù)的體系結(jié)構(gòu) (SOA) 反模式,這些反模式對(duì)通常出現(xiàn)的會(huì)產(chǎn)生確定性負(fù)面結(jié)果的情形或解決方案進(jìn)行了描述。隨著越來越多的企業(yè)開始大舉從 Web 服務(wù)轉(zhuǎn)向 SOA,引入、采用和成功實(shí)現(xiàn) SOA 方面的各種障礙變得越來越明顯。其中一些障礙與導(dǎo)致過去的要害活動(dòng)失敗的因素類似;而其他障礙則是 SOA 特有的。對(duì)這些障礙和最差實(shí)踐進(jìn)行記錄,將幫助顧問、架構(gòu)師和專業(yè)人員不再犯同樣的錯(cuò)誤,并學(xué)習(xí)如何避免這些問題的發(fā)生。此處匯集和說明的反模式是由作者通過作為 IBM 架構(gòu)師的個(gè)人經(jīng)驗(yàn)、研究過去和當(dāng)前的 SOA 應(yīng)用案例以及通過分析那些參與客戶 SOA 應(yīng)用的技術(shù)先驅(qū)提供的信息而得到的。 模式與反模式“示例不是另一種學(xué)習(xí)的方法,而是學(xué)習(xí)的唯一方法。”——阿爾貝特•愛因斯坦模式和模式語言捕捉并正式地將良好設(shè)計(jì)和基于經(jīng)驗(yàn)的最佳實(shí)踐系統(tǒng)化,以供其他人員對(duì)其進(jìn)行重用。它們成功而清楚地表述了常見問題及其解決方案。總的來說,常見概念、描述這些概念的詞匯以及將其聯(lián)系在一起的語言是所有采用這些設(shè)計(jì)和實(shí)踐的學(xué)科和領(lǐng)域的基礎(chǔ)。Christopher Alexander 關(guān)于建筑物和城市設(shè)計(jì)的研究通常被認(rèn)為是基于模式的思維最早的成果(請(qǐng)參閱參考資料)。他提出了術(shù)語“模式語言”,以此代表他認(rèn)為人類進(jìn)行設(shè)計(jì)的能力和使用語言的能力都是天生的這一信念。很多學(xué)科都在使用模式和模式語言的概念,包括從生理學(xué)和流程到項(xiàng)目治理和軟件工程等領(lǐng)域。在 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(經(jīng)常將他們稱為 Gang of Four)的“Design Patterns: Elements of Reusable Object-Oriented Software”一書出版后,軟件設(shè)計(jì)模式得到了廣泛的認(rèn)可和使用。軟件社區(qū)目前正使用模式來解決在軟件生命周期中碰到的不斷重復(fù)的問題,包括軟件體系結(jié)構(gòu)和設(shè)計(jì),以及近來的軟件開發(fā)流程和拓?fù)洹_@些模式全面捕捉了一個(gè)知識(shí)體系,以標(biāo)識(shí)我們對(duì)可以實(shí)現(xiàn)設(shè)計(jì)良好的軟件解決方案的結(jié)構(gòu)和機(jī)制的理解。模式經(jīng)常被定義為“泛型化的、命名的問題到解決方案的映射”。它捕捉在特定環(huán)境中重復(fù)出現(xiàn)的問題的成功解決方案。通常使用與表 1“模式模板”中描述的模板類似的模板來記錄軟件模式。表 1. 模式模板內(nèi)容說明名稱:用于進(jìn)行標(biāo)識(shí)的名稱問題:在領(lǐng)域中重復(fù)出現(xiàn)的問題解決方案:該問題的最佳實(shí)踐解決方案結(jié)果:所建議的解決方案的優(yōu)點(diǎn)和缺點(diǎn)示例一些已經(jīng)應(yīng)用了所建議的解決方案的示例
圖 1. 模式與反模式(摘自 Brown 等的“AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis”)新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注