內容大鋼
《軟體架構師手冊》作為一本綜合性指南,能夠推進開發人員、架構師和高級程序員在軟體架構領域的職業發展。本書將帶你了解所有重要的概念,從設計原則到軟體架構職業生涯各個階段的不同考量。
本書首先介紹了軟體架構的基礎、優勢和目標。然後,你將了解軟體架構和組織的關係,以及如何識別架構中重要的質量屬性。一旦掌握了這些基礎知識,你將進一步探索高效軟體開發的設計模式、最佳實踐和範式。
本書探討了哪些因素能夠提升性能和安全性。你將學習為架構撰寫文檔,並在DevOps框架下做出適當的決策。此外,你將學習如何設計遺留應用程序,以及如何創建隨市場、業務需求、框架、工具和最佳實踐的變化而演進的軟體架構。
讀完本書,你不僅能了解軟體架構的概念,而且能掌握在本領域成長所必需的軟技能。
作者介紹
(美)約瑟·因格納|責編:張燁|譯者:米慶//于洋
約瑟·因格納,Joseph Ingeno是一名軟體架構師,曾負責監督多個企業級軟體的開發。在他的職業生涯中,曾為不同行業設計並開發軟體。他熟悉多種技術和框架,在開發web、移動和桌面應用程序方面有著豐富的經驗。Joseph 畢業於邁阿密大學(University of Miami),獲得電腦信息系統的理學碩士學位和工商管理學士學位,之後又在布蘭迪斯大學(Brandeis University)獲得軟體工程碩士學位。他擁有多項認證,包括微軟認證解決方案開發專家(Microsoft Certified Solutions Develop-er)和IEEE 電腦協會的專業軟體工程專家認證(Professional Software EngineeringMaster Certification)。
目錄
1 軟體架構的含義
什麼是軟體架構?
為什麼軟體架構很重要?
軟體架構的受眾是誰?
軟體架構師的角色是怎樣的?
總結
2 組織中的軟體架構
軟體架構師的類型
軟體開發方法
項目管理
職場關係
軟體風險管理
配置管理
軟體產品線
總結
3 理解領域
培養商業智慧
領域驅動設計
需求工程
需求抽取
總結
4 軟體質量屬性
質量屬性
可維護性
易用性
可用性
可移植性
互用性
可測試性
總結
5 設計軟體架構
軟體架構設計
軟體架構設計的重要性
自頂向下方法和自底向上方法
綠地軟體系統和棕地軟體系統
架構驅動
利用設計原則和現有的解決方案
記錄軟體架構設計
使用系統化方法進行軟體架構設計
屬性驅動設計(ADD)
微軟的架構和設計技術
以架構為中心的設計方法(ACDM)
架構開發方法(ADM)
跟蹤軟體架構設計的進度
總結
6 軟體開發原則與實踐
設計正交的軟體系統
最小化複雜性
遵循SOLID的設計原則
幫助你的團隊走向成功
總結
7 軟體架構模式
軟體架構模式
分層架構
事件驅動架構
Model-View-Controller模式
Model-View-Presenter模式
Model-View-ViewModel模式
命令查詢職責分離
面向服務架構
面向服務的設計
服務註冊中心
服務描述
組織命名空間
編排和協同
總結
8 現代應用程序架構設計
單體架構
微服務架構
無伺服器架構
雲原生應用程序
總結
9 橫切關注點
橫切關注點
橫切關注點的通用指南
實現橫切關注點
面向切面編程
橫切關注點的類型
微服務的橫切關注點
總結
10 性能注意事項
性能的重要性
定義性能術語
採取系統性方法改善性能
服務端緩存
改善Web應用程序性能
資料庫性能
總結
11 安全性注意事項
確保軟體系統的安全
威脅建模
設計安全
密碼學
身份和訪問管理(IAM)
最常見的Web應用程序安全性風險
總結
12 軟體架構的文檔化和評審
軟體架構文檔的使用
創建架構描述(ADs)
統一建模語言(UML)概述
軟體架構評審
總結
13 DevOps和軟體架構
DevOps定義
DevOps實踐
DevOps的架構
部署到雲端
總結
14 遺留應用架構設計
遺留應用程序
重構遺留應用程序
遷移到雲
現代化構建和部署流程
與遺留應用程序集成
總結
15 軟體架構師的軟技能
軟技能
溝通
領導
協商
與遠程資源協同工作
總結
16 演進架構
變化不可避免
Lehman的軟體演進法則
法則
設計演進架構
總結
17 成為更好的軟體架構師
持續學習
參與開源項目
撰寫自己的博客
花時間教學
嘗試新技術
繼續編寫代碼
參加用戶小組和會議
對你的工作負責
關注你的健康
總結