注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計其他編程語言/工具Azure、DevOps和微服務軟件架構實戰(zhàn)(第2版)

Azure、DevOps和微服務軟件架構實戰(zhàn)(第2版)

Azure、DevOps和微服務軟件架構實戰(zhàn)(第2版)

定 價:¥128.00

作 者: [葡] 加布里埃爾·巴普蒂斯特,[意]弗朗西斯科·阿布魯澤塞 著,葉偉民 張?zhí)諚?王偉 肖寧 譯
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787302618508 出版時間: 2023-01-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  軟件架構是指可以簡化軟件開發(fā)過程并提高應用程序質(zhì)量的實現(xiàn)架構和系統(tǒng)。本書在第1版的基礎上進行了全面修訂和擴展,面向.NET 5和C# 9,介紹了一些能夠助你成為一名卓越的軟件架構師所需的關鍵技能、知識和**實踐。 第2版增加了對軟件架構原則的額外講述、Azure服務結構、Kubernetes和Blazor等新章節(jié)。另外,還增加了關于安全性、微服務和DevOps的討論,以及軟件開發(fā)周期的GitHub部署。 首先,介紹如何將用戶需求轉換為軟件架構需求,并探討功能性需求和非功能性需求之間的差異。然后,探討如何為基礎設施選擇云解決方案,以及如何在基于云的環(huán)境中管理應用程序。最后,講解軟件設計模式和各種軟件方法,從而幫助你解決開發(fā)過程中遇到的常見問題?!W習完本書,你將能夠構建并交付可滿足組織業(yè)務需求的高度可擴展的企業(yè)應用程序。 主要內(nèi)容 ● 使用多種技術克服現(xiàn)實工作中的架構挑戰(zhàn),并從設計層面解決問題 ● 應用分層架構、面向服務架構和微服務架構 ● 利用容器、Docker、Kubernetes和Blazor等工具高效管理微服務 ● 快速使用Azure工具和功能提供全局解決方案 ● 使用C# 9及其新功能編程和維護Azure功能 ● 了解什么情況下最適合使用測試驅動開發(fā)方法 ● 編寫自動化功能測試用例 ● 充分利用DevOps原則實現(xiàn)CI/CD環(huán)境

作者簡介

  Gabriel Baptista是一名軟件架構師,他領導技術團隊跨項目使用Microsoft平臺完成了多個與零售和工業(yè)相關的項目。他是Azure解決方案方面的專家,也是一位講授軟件工程、開發(fā)和架構等課程的教授,并出版了一些與計算機相關的書籍。他在知名.NET技術社區(qū)網(wǎng)站Microsoft Channel 9上演講,還與他人一起創(chuàng)辦了SMIT公司,主要開展開發(fā)解決方案方面的業(yè)務,他將DevOps理念視為滿足用戶需求的關鍵。“致我親愛的家人Murilo、Heitor和Denise,他們經(jīng)常鼓勵我。感謝我的父母Elisabeth和Virgílio,以及我的祖母、外祖母Maria和Lygia,他們一直鼓勵我。特別感謝Packt團隊,全體成員的辛勤勞動保證了這本書的優(yōu)秀質(zhì)量。”Francesco Abbruzzese是MVC Controls Toolkit和Blazor Controls Toolkit程序庫的作者。他從 ASP.NET MVC第一個版本就開始為Microsoft Web技術棧的傳播和推廣做貢獻。他的公司Mvcct Team提供一些與Web技術相關的Web應用程序、工具和服務。他曾從事人工智能系統(tǒng)相關的工作(例如為金融機構實施了首批決策支持系統(tǒng)),后來轉型去做電視游戲(如當時排名前10位的Puma Street Soccer)。“感謝親愛的父母,我的一切都來自他們。特別感謝Packt全體員工以及為改進本書整體代碼質(zhì)量做出貢獻的審稿人員。”

圖書目錄

 
第1章  軟件架構的重要性 1
1.1  什么是軟件架構 1
1.2  軟件開發(fā)過程模型 4
1.2.1  傳統(tǒng)的軟件開發(fā)過程模型 4
1.2.2  敏捷軟件開發(fā)過程模型 6
1.3  收集正確信息以設計高質(zhì)量軟件 10
1.3.1  了解需求收集過程 10
1.3.2  收集準確的用戶需求 10
1.3.3  分析需求 11
1.3.4  將需求整理成規(guī)范的文檔 11
1.3.5  復核用戶需求文檔 13
1.4  設計技術 13
1.4.1  設計思維 13
1.4.2  設計沖刺 14
1.5  收集需求階段就要考慮的常見問題 14
1.5.1  問題1:網(wǎng)站太慢,無法打開網(wǎng)頁 14
1.5.2  問題2:用戶的需求未得到正確實現(xiàn) 16
1.5.3  問題3:系統(tǒng)會在什么環(huán)境使用 17
1.6  World Wild Travel Club案例簡介 17
1.7  本章小結 19
1.8   練習題 19
第2章  非功能性需求 21
2.1  技術性要求 21
2.2  使用Azure和.NET 5實現(xiàn)可擴展性、可用性和可恢復性 21
2.2.1  在Azure中創(chuàng)建可擴展的Web應用程序 22
2.2.2  使用.NET 5創(chuàng)建可擴展的Web應用程序 26
2.3  C#編程時需要考慮的性能問題 29
2.3.1  字符串串聯(lián) 29
2.3.2  異常 30
2.3.3  多線程 31
2.4  易用性——插入數(shù)據(jù)為什么會耗費太長時間 32
2.4.1  如何設計快速選擇 33
2.4.2  從大量的條目中進行選擇 34
2.5  .NET Core的互操作性 35
2.6  在設計層面實現(xiàn)安全性 37
2.7  用例——了解.NET Core項目的主要類型 38
2.8  本章小結 40
2.9  練習題 40
第3章  使用Azure DevOps記錄需求 41
3.1  技術性要求 41
3.2  Azure DevOps介紹 41
3.3  使用Azure DevOps 組織工作 45
3.3.1  Azure DevOps存儲庫 45
3.3.2  包源 47
3.3.3  測試計劃 49
3.3.4  管道 50
3.4  使用Azure DevOps管理系統(tǒng)需求 50
3.4.1  Epic工作項 50
3.4.2  Feature工作項 51
3.4.3  Product Backlog工作項/ User Story工作項 51
3.5  用例——在Azure DevOps中展現(xiàn)WWTravelClub 51
3.6  本章小結 55
3.7  練習題 55
第4章 確定基于云的最佳解決方案 56
4.1  技術性要求 56
4.2  不同的軟件部署模型 56
4.2.1  IaaS和Azure服務 57
4.2.2  PaaS—— 開發(fā)者的世界 59
4.2.3  SaaS——只需要登錄即可開始 63
4.2.4  無服務器解決方案 64
4.3  為什么混合應用程序在許多情況下如此有用 64
4.4  用例——哪一種才是最好的
云解決方案 65
4.5  本章小結 66
4.6  練習題 66
第5章 在企業(yè)應用中應用微服務架構 67
5.1  技術性要求 67
5.2  什么是微服務 67
5.2.1  微服務與模塊概念的演變 68
5.2.2  微服務設計原則 69
5.2.3  容器和Docker 71
5.3  微服務什么時候有幫助 72
5.3.1  分層架構和微服務 72
5.3.2  什么時候值得考慮微服務架構 74
5.4  .NET如何處理微服務 75
5.4.1  .NET通信工具 75
5.4.2  可恢復性任務執(zhí)行 76
5.4.3  使用通用宿主 77
5.4.4  Visual Studio對Docker的支持 80
5.4.5  Azure和Visual Studio對微服務編排的支持 84
5.5  管理微服務需要哪些工具 84
5.6  本章小結 86
5.7  練習題 86
第6章 Azure Service Fabric 87
6.1  技術性要求 87
6.2  定義和配置Azure Service Fabric群集 90
6.2.1  步驟1:基本信息 90
6.2.2  步驟2:群集配置 91
6.2.3  步驟3:安全配置 93
6.3  用例——購買記錄微服務 95
6.3.1  確保消息冪等性 97
6.3.2  交互程序庫 99
6.3.3  實現(xiàn)通信的接收端 100
6.3.4  實現(xiàn)服務邏輯 102
6.3.5  定義微服務的宿主 106
6.3.6  與服務進行通信 107
6.3.7  測試應用程序 108
6.4  本章小結 109
6.5  練習題 109
第7章 Azure Kubernetes服務 110
7.1  技術性要求 110
7.2  Kubernetes 基礎 110
7.2.1  .yaml 文件 111
7.2.2  ReplicaSet和Deployment 112
7.2.3  StatefulSet 114
7.2.4  Service 114
7.2.5  Ingress 118
7.3  與Azure Kubernetes群集交互 119
7.3.1  使用 Kubectl 121
7.3.2  部署留言板示例應用程序 122
7.4  Kubernetes高級概念 124
7.4.1  需要永久存儲 125
7.4.2  Kubernetes Secret 126
7.4.3  存活性和就緒性檢查 127
7.4.4  自動縮放 128
7.4.5  Helm:安裝入口控制器 129
7.5  本章小結 131
7.6  練習題 132
第8章 在C#中與數(shù)據(jù)進行交互——Entity Framework Core 133
8.1  技術性要求 133
8.2  ORM基礎 134
8.3  配置Entity Framework Core 136
8.3.1  定義數(shù)據(jù)庫實體 137
8.3.2  定義映射集合 139
8.3.3  完成映射配置 139
8.4  Entity Framework Core遷移 141
8.5  使用Entity Framework Core查詢和更新數(shù)據(jù) 144
8.5.1  將數(shù)據(jù)返回給表示層 147
8.5.2  直接發(fā)出SQL命令 148
8.5.3  處理事務 149
8.6  數(shù)據(jù)層的部署 149
8.7  Entity Framework Core的高級功能 150
8.8  本章小結 151
8.9  練習題 151
第9章 在云上選擇數(shù)據(jù)存儲 152
9.1  技術性要求 152
9.2  不同用途的不同存儲庫 153
9.2.1  關系數(shù)據(jù)庫 153
9.2.2  NoSQL數(shù)據(jù)庫 155
9.2.3  Redis 156
9.2.4  Azure存儲賬戶 156
9.3  在結構化存儲和NoSQL存儲之間進行選擇 157
9.4  Azure Cosmos DB—— 一種管理跨區(qū)域數(shù)據(jù)庫的選擇 158
9.4.1  創(chuàng)建一個Azure Cosmos DB賬戶 158
9.4.2  創(chuàng)建Azure Cosmos集合 159
9.4.3  訪問Azure Cosmos 數(shù)據(jù) 160
9.4.4  定義數(shù)據(jù)庫一致性 160
9.4.5  Cosmos DB客戶端 162
9.4.6  Cosmos DB的Entity Framework Core提供程序 163
9.5  用例——存儲數(shù)據(jù) 164
9.6  本章小結 167
9.7  練習題 167
第10章  Azure函數(shù)應用 168
10.1  技術性要求 168
10.2  Azure函數(shù)應用程序 168
10.2.1  消耗計劃 169
10.2.2  函數(shù)高級計劃 169
10.2.3  應用服務計劃 170
10.3  使用C#運行Azure函數(shù)應用 170
10.4  維護Azure函數(shù)應用 174
10.5  用例——通過Azure函數(shù)應用發(fā)送電子郵件 176
10.5.1  第一步:創(chuàng)建Azure隊列存儲 176
10.5.2  第二步:創(chuàng)建發(fā)送電子郵件的函數(shù) 178
10.5.3  第三步:創(chuàng)建Queue Trigger函數(shù) 180
10.6  本章小結 181
10.7  練習題 181
第11章  設計模式與.NET 5實現(xiàn) 182
11.1  技術性要求 182
11.2  設計模式及其目的 182
11.2.1  建造者模式 183
11.2.2  工廠模式 185
11.2.3  單例模式 186
11.2.4  代理模式 188
11.2.5  命令模式 189
11.2.6  發(fā)布者-訂閱者模式 190
11.2.7  依賴注入模式 191
11.3  .NET 5中可用的設計模式 192
11.4  本章小結 193
11.5  練習題 193
第12章  不同領域的軟件解決方案 194
12.1  技術性要求 195
12.2  什么是軟件領域 195
12.3  理解領域驅動設計 196
12.4  實體和值對象 198
12.5  使用SOLID原則映射領域 201
12.6  聚合 203
12.7  存儲庫和工作單元模式 204
12.8  DDD實體和Entity Framework Core 205
12.9  命令查詢職責分離模式 206
12.10  命令處理程序和領域事件 208
12.11  事件溯源 210
12.12  用例——WWTravelClub的領域 210
12.13  本章小結 212
12.14  練習題 212
第13章  在C# 9中實現(xiàn)代碼復用 214
13.1  技術性要求 214
13.2  代碼復用的原則 214
13.2.1  什么不是代碼復用 215
13.2.2  什么是代碼復用 215
13.3  開發(fā)生命周期中的可復用性 216
13.4  使用.NET 5或.NET Standard進行代碼復用 217
13.5  在C#中處理代碼復用 218
13.5.1  面向對象分析 218
13.5.2  泛型 220
13.6  如果代碼不可復用怎么辦 220
13.7  如何推廣可復用的程序庫 221
13.7.1  使用DocFX文檔化.NET程序庫 221
13.7.2  使用Swagger文檔化Web API 222
13.8  用例——復用代碼以快速交付優(yōu)質(zhì)、安全的軟件 223
13.9  本章小結 223
13.10  練習題 224
第14章  使用.NET Core實現(xiàn)面向服務的架構 225
14.1  技術性要求 225
14.2  SOA方法的原則 226
14.3  SOAP Web服務 228
14.4  REST Web服務 229
14.4.1  服務類型兼容性規(guī)則 229
14.4.2  REST與原生HTTP功能 230
14.4.3  REST語言中的方法示例 232
14.4.4  OpenAPI標準 232
14.4.5  REST服務的身份驗證和鑒權 233
14.5  如何在.NET 5中處理SOA 235
14.5.1  對SOAP客戶端的支持 235
14.5.2  對gRPC的支持 236
14.5.3  ASP.NET Core簡介 236
14.5.4  使用ASP.NET Core實現(xiàn)REST服務 239
14.6  用例——公開WWTravelClub的旅行方案 248
14.7  本章小結 252
14.8  練習題 253
第15章  ASP.NET Core MVC 254
15.1  技術性要求 254
15.2  Web應用程序的表示層 254
15.3  ASP.NET Core MVC架構 255
15.3.1  ASP.NET Core管道工作原理 255
15.3.2  加載配置數(shù)據(jù)并與options框架一起使用 258
15.3.3  定義ASP.NET Core MVC管道 261
15.3.4  定義控制器和ViewModel 265
15.3.5  Razor視圖 267
15.3.6  復用視圖代碼 273
15.4  ASP.NET Core最新版本的新增功能 275
15.5  ASP.NET Core MVC和設計原則的關系 276
15.5.1  ASP.NET Core管道的優(yōu)點 277
15.5.2  服務器端和客戶端驗證 277
15.5.3  ASP.NET Core多語言支持 278
15.5.4  MVC模式 280
15.6  用例 —— 使用ASP.NET Core MVC實現(xiàn)Web應用程序 281
15.6.1  定義應用程序規(guī)范 281
15.6.2  定義應用程序架構 282
15.6.3  控制器和視圖 293
15.7  本章小結 298
15.8  練習題 298
第16章  Blazor WebAssembly 299
16.1  技術性要求 299
16.2  Blazor WebAssembly架構 300
16.2.1  什么是單頁應用程序 300
16.2.2  加載并啟動應用程序 301
16.2.3  路由 303
16.3  Blazor頁面和組件 304
16.3.1  組件結構 304
16.3.2  模板和級聯(lián)參數(shù) 307
16.3.3  事件 309
16.3.4  綁定 311
16.3.5  Blazor如何更新HTML 312
16.3.6  組件生命周期 313
16.4  Blazor表單和驗證 314
16.5  Blazor高級功能 316
16.5.1  對組件和HTML元素的引用 316
16.5.2  JavaScript互操作性 316
16.5.3  全球化與本地化 318
16.5.4  身份驗證和授權 318
16.5.5  與服務器的通信 320
16.6  Blazor WebAssembly第三方工具 321
16.7  用例——使用Blazor WebAssembly實現(xiàn)一個簡單的應用程序 322
16.7.1  準備解決方案 322
16.7.2  實現(xiàn)所需的ASP.NET Core REST API 323
16.7.3  在服務中實現(xiàn)業(yè)務邏輯 325
16.7.4  實現(xiàn)用戶界面 325
16.8  本章小結 328
16.9  練習題 328
第17章  C# 9編碼最佳實踐 329
17.1  技術性要求 329
17.2  越糟糕的程序員,編碼越復雜 329
17.2.1  可維護性指數(shù) 330
17.2.2  圈復雜度 330
17.2.3  繼承深度 333
17.2.4  類耦合度 334
17.2.5  源代碼行 336
17.3  使用版本控制系統(tǒng) 336
17.4  用C#編寫安全代碼 336
17.4.1  try-catch 336
17.4.2  try-finally和using 337
17.4.3  IDisposable接口 338
17.5  編寫.NET 5代碼的提示與技巧 339
17.6  編寫代碼時的注意事項 340
17.7  本章小結 341
17.8  練習題 341
第18章  單元測試用例和TDD 342
18.1  技術性要求 342
18.2  單元測試和集成測試 342
18.2.1  對單元測試和集成測試進行自動化 343
18.2.2  編寫自動化單元測試與集成測試 344
18.2.3  編寫驗收測試和性能測試 345
18.3  測試驅動開發(fā) 346
18.4  定義C#測試項目 347
18.4.1  使用xUnit測試框架 348
18.4.2  高級測試準備和清理場景 350
18.4.3  使用Moq模擬接口 351
18.5  用例 —— 在Azure DevOps中對單元測試進行自動化 352
18.6  本章小結 359
18.7  練習題 359
第19章  使用工具編寫更好的代碼 360
19.1  技術性要求 360
19.2  識別編寫良好的代碼 360
19.3  使用C#代碼評估工具 361
19.4  使用擴展工具分析代碼 365
19.4.1  使用Microsoft Code Analysis 2019 365
19.4.2  使用SonarLint for Visual Studio 2019 365
19.5  檢查分析之后的最終代碼 366
19.6  用例——在應用程序發(fā)布之前評估C#代碼 367
19.7  本章小結 368
19.8  練習題 369
第20章  DevOps 370
20.1  技術性要求 370
20.2  DevOps的描述 371
20.3  DevOps原則 371
20.4  Azure DevOps的持續(xù)交付 372
20.4.1  使用Azure管道部署程序包管理應用程序 372
20.4.2  多階段環(huán)境 379
20.5  定義持續(xù)反饋和相關的DevOps工具 381
20.5.1  使用Azure Monitor Application Insights監(jiān)控軟件 381
20.5.2  使用測試和反饋工具實現(xiàn)反饋 384
20.6  SaaS 388
20.6.1  使組織適應服務場景 388
20.6.2  服務場景中的軟件開發(fā)過程 388
20.6.3  服務場景在技術層面的可能影響 388
20.6.4  決定何時采用SaaS解決方案 389
20.6.5  為服務場景準備解決方案 389
20.7  用例——WWTravelClub 項目方案 391
20.8  本章小結 391
20.9  練習題 392
第21章  持續(xù)集成所帶來的挑戰(zhàn) 393
21.1  技術性要求 393
21.2  持續(xù)集成 393
21.3  持續(xù)集成和GitHub 394
21.4  使用持續(xù)集成的風險和挑戰(zhàn) 396
21.4.1  禁用生產(chǎn)環(huán)境的持續(xù)部署 397
21.4.2  不完整的功能 398
21.4.3  不穩(wěn)定的測試解決方案 400
21.5  WWTravelClub 項目方案 403
21.6  本章小結 403
21.7  練習題 403
第22章  功能測試自動化 404
22.1  技術性要求 404
22.2  功能測試的目的 404
22.3  在C#中使用單元測試工具來自動化功能測試 406
22.3.1  測試模擬環(huán)境中的應用程序 407
22.3.2  測試受控應用程序 408
22.4  用例——自動化功能測試 410
22.5  本章小結 412
22.6  練習題 413
 
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號