- 軟件再工程:優化現有軟件系統的方法與最佳實踐
- (美)Bradley Irby
- 686字
- 2020-11-04 16:44:57
第1章 實現面向服務的架構
在查看和修改代碼之前,我們需要討論一下目標的整體架構。只有明確了最終的目標架構,我們才能夠在邁向這個最終目標的過程中,始終把握住正確的前進方向。
我們將實現一個面向服務的架構(Service-Oriented Architecture,SOA)。這種結構從一個比較高的層次上,描述了我們的軟件架構,解釋了大塊構件間的交互方式,從而避免了應用程序進入到一個緊耦合的狀態。這種方法貫穿全書,所以理解本章中的準則對項目的成功至關重要。
SOA是一種將應用程序設計為可擴展和可維護的方法。SOA設計準則于2005年由Thomas Erl規范化(http://soaprinciples.com/),并在近幾年成為一種主流。最初發布的準則設計用于一些大型系統。這些系統可以運行在任意的硬件之上,而這些硬件可以通過網絡接入。具體來說,這些服務可以存在于應用程序的內部或者外部,甚至能由開發團隊之外的人員來管理,因此“服務發現”和“組件描述”是Thomas Erl所描述的SOA架構中的重要組成部分。如果你準備設計外界可使用的服務,比如網站的API或是由其他開發人員使用的第三方庫,那么SOA是一個絕佳的參考樣例。
本書只用到了Erl杰出成果中的一部分。假設所有的服務都在應用程序內部,而且假設你了解所構建的服務,因此許多服務的接口定義在構建時也是為你所知的。換句話說,我們假設在構建代碼時你充分了解應用程序使用的所有服務。沒有必要為了動態適應不斷變化的外部服務而新建代碼。這個假設并不意味著我們構建的服務不能提供給外界。在這本書中,對于向外界宣揚所提供的服務以及向外界闡明服務提供的功能定義等諸如此類的問題,我們不想在其上浪費過多的精力。如果真的有需要去設計和構建一個外部可用服務,比如公共的API,只需適當使用Erl準則就可以輕松解決問題。
- Bootstrap Site Blueprints Volume II
- 一步一步學Spring Boot 2:微服務項目實戰
- Unreal Engine Physics Essentials
- 基于粒計算模型的圖像處理
- Mastering AWS Lambda
- GraphQL學習指南
- JavaScript語言精髓與編程實踐(第3版)
- 匯編語言程序設計(第2版)
- Learning AWS Lumberyard Game Development
- 差分進化算法及其高維多目標優化應用
- SharePoint Development with the SharePoint Framework
- HTML5從入門到精通(第4版)
- Kotlin極簡教程
- 大學計算機應用基礎(Windows 7+Office 2010)(IC3)
- Python物理建模初學者指南(第2版)