鴻蒙架構師修煉之道

柳偉衛

  • 出版商: 北京大學
  • 出版日期: 2026-01-01
  • 售價: $714
  • 語言: 簡體中文
  • 頁數: 400
  • ISBN: 7301365020
  • ISBN-13: 9787301365021
  • 相關分類: Domain-Driven Design
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

所有程序員都有成為架構師的潛力,只要掌握了架構師的思維方式和工作方法,你也能成長為架構師。鴻蒙操作系統是華為自研的、面向萬物互聯的全場景分布式操作系統,支持手機、平板、PC 智能穿戴、智慧屏等多種終端設備運行,是提供應用開發、設備開發的一站式服務的平臺。隨著 HarmonyOS NEXT 正式發布,市面上對於鴻蒙架構設計方面的需求呈井噴之勢。本書以 的 HarmonyOS NEXT 版本為基石,詳細介紹成為鴻蒙架構師應具備和掌握的核心能力和工作方法,包括架構設計思維、架構設計原理、架構設計模式、工具、編程語言、UI 設計、線程模型設計、通信設計、持久化設計、安全性、測試、調優調測等多個主題。本書不但通過真實案例講解架構設計流程和經驗,還總結了豐富的鴻蒙架構師工作原則和技巧,尤其適合廣大鴻蒙程序員進階學習。同時,學習本書也有助於產品經理、測試人員、運維人員和其他行業從業者理解鴻蒙軟件架構設計工作。

作者簡介

柳偉衛,網名老衛、waylau,在IT公司擔任項目經理、架構師、 技術顧問等職位,是CSDN、 開源中國、阿裏雲開發者、華為開發者等技術社區專家,慕課網、華為開發者聯盟社區認證講師,HarmonyOS技術達人,曾獲2021、2022年度牛人之星、2022年度OpenHarmony開源貢獻之星。著有《跟老衛學HarmonyOS開發》等開源書,並出版了《鴻蒙HarmonyOS手機應用開發實戰》《鴻蒙HarmonyOS應用開發從入門到精通》《Spring Boot 2.0企業級應用開發實戰》《Spring Cloud 微服務架構開發實戰》《Spring 5 開發大全》《Cloud Native 分布式架構原理與實踐》《大型互聯網應用輕量級架構實戰》等專著

目錄大綱

成為鴻蒙架構師
1.1?什麼是鴻蒙 2
1.1.1 萬物互聯時代的新挑戰 2
1.1.2 什麼是HarmonyOS 3
1.1.3 鴻蒙生態詳解 4
1.2?鴻蒙開發的兩大方向 4
1.2.1 設備開發 4
1.2.2 應用開發 5
1.3?鴻蒙架構師要做什麼 5
1.3.1 技術研究與規劃 6
1.3.2 系統架構設計 6
1.3.3 開發與指導 6
1.3.4 項目管理與協調 6
1.3.5 系統維護與升級 7
1.4?如何成為團隊的架構師 7
1.4.1 紮實的知識儲備 7
1.4.2 豐富的提升技能 8
1.4.3 經驗的積累 8
1.4.4 職業素養的培養 8
架構設計思維
2.1?架構師設計思維點 11
2.1.1 系統性 11
2.1.2 抽象性 11
2.1.3 前瞻性 12
2.1.4 權衡性 12
2.1.5 逆向性 12
2.1.6 協作性 13
2.2?核心思維方式 13
2.2.1 問題定義思維 13
2.2.2 數據驅動思維 13
2.2.3 覆用思維 14
2.2.4 創新思維 14
2.2.5 風險管理思維 15
2.3?關鍵要素 15
2.3.1 抽象與建模 15
2.3.2 整體與局 16
2.3.3 技術與業務 16
2.3.4 穩定性與可擴展性 16
2.3.5 性能與成本 17
2.3.6 疊代與演進 17
2.4?實踐應用 17
2.4.1 分層架構設計 17
2.4.2 微服務架構 18
2.4.3 緩存機制 18
2.4.4 數據處理與分析 19
2.4.5 高可用與容錯設計 19
架構設計原理
3.1?什麼是軟件架構 21
3.1.1 軟件架構是數字的基石 21
3.1.2 軟件架構的重要性 21
3.2?B/S與C/S架構 22
3.2.1 B/S架構 22
3.2.2 C/S架構 23
3.2.3 富客戶端技術 24
3.3?面向對象的分布式架構 25
3.3.1 基本概念 25
3.3.2 基本原理 26
3.3.3 關鍵點 27
3.3.4 架構組成 28
3.3.5 應用場景 28
3.4?面向服務的分布式架構 28
3.4.1 核心概念 29
3.4.2 關鍵性 29
3.4.3 架構構成 29
3.4.4 通信與交互 30
3.4.5 應用場景 31
3.4.6 Web服務的分類 31
3.5?面向消息的分布式架構 33
3.5.1 核心概念 33
3.5.2 關鍵性 33
3.5.3 架構構成 34
3.5.4 通信與交互 35
3.5.5 應用場景 35
3.6?REST風格的架構 36
3.6.1 什麼是REST 36
3.6.2 REST設計原則 37
3.6.3 成熟度模型 38
3.7?微服務架構 39
3.7.1 什麼是微服務架構 39
3.7.2 微服務架構與SOA架構的
區別 40
3.7.3 何時采用微服務架構 44
3.8?Serverless架構 44
3.8.1 什麼是Serverless架構 45
3.8.2 Serverless典型的應用
場景 46
3.8.3 Serverless架構原則 48
3.9?Cloud Native架構 48
3.9.1 為什麼需要使用Cloud
Native 48
3.9.2 Cloud Native與微服務架構的關系 49
3.9.3 Cloud Native與Serverless
架構的關系 49
3.9.4 Cloud Native點 49
3.9.5 Cloud Native不是銀彈 51
3.9.6 面臨的挑戰 51
架構設計模式
4.1?什麼是架構設計模式 53
4.1.1 架構設計模式的定義 53
4.1.2 架構設計模式的重要性 53
4.1.3 架構設計模式的選擇與
應用 54
4.2?分層模式 54
4.2.1 分層模式的基本概念 55
4.2.2 分層模式的勢 55
4.2.3 分層模式的應用場景 56
4.2.4 分層模式的實現要點 56
4.2.5 分層模式的局限性與
挑戰 57
4.3?端口適配器模式 57
4.3.1 端口適配器模式的基本
概念 58
4.3.2 端口適配器模式的勢 59
4.3.3 端口適配器模式的應用
場景 59
4.3.4 端口適配器模式的實現
要點 60
4.3.5 端口適配器模式的局限性與
挑戰 60
4.4?管道過濾器模式 60
4.4.1 管道過濾器模式的基本
概念 61
4.4.2 管道過濾器模式的勢 61
4.4.3 管道過濾器模式的應用
場景 62
4.4.4 管道過濾器模式的實現
要點 62
4.4.5 管道過濾器模式的局限性與
挑戰 63
4.5?主從模式 63
4.5.1 主從模式的基本概念 63
4.5.2 主從模式的勢 64
4.5.3 主從模式的應用場景 65
4.5.4 主從模式的實現要點 65
4.5.5 主從模式的局限性與挑戰 66
4.6?發布訂閱模式 66
4.6.1 發布訂閱模式的定義與基本
概念 66
4.6.2 發布訂閱模式的勢 67
4.6.3 發布訂閱模式的應用場景 68
4.6.4 發布訂閱模式的實現要點 68
4.6.5 發布訂閱模式的局限性與
挑戰 69
4.7?共享數據模式 69
4.7.1 共享數據模式的基本概念 69
4.7.2 共享數據模式的勢 70
4.7.3 共享數據模式的應用場景 70
4.7.4 共享數據模式的實現要點 71
4.7.5 共享數據模式的局限性與
挑戰 71
4.8?中心模式 72
4.8.1 中心模式的基本概念 72
4.8.2 中心模式的勢 73
4.8.3 中心模式的應用場景 74
4.8.4 中心模式的實現要點 74
4.8.5 中心模式的局限性與
挑戰 75
4.9?開源貢獻模式 75
4.9.1 開源貢獻模式的核心概念 76
4.9.2 開源貢獻模式的勢 76
4.9.3 開源貢獻模式的主要類型 77
4.9.4 開源貢獻模式的實踐流程 77
4.9.5 開源貢獻模式面臨的挑戰與
解決方案 78
4.10?鴻蒙架構模式 78
4.10.1 鴻蒙架構模式的核心概念 79
4.10.2 鴻蒙架構模式的勢 80
4.10.3 鴻蒙架構模式的應用場景 80
4.10.4 鴻蒙架構模式的技術實現
要點 81
4.10.5 鴻蒙架構模式面臨的挑戰與應對策略 81
4.11?鴻蒙應用開發架構選型 82
4.11.1 鴻蒙應用開發架構概述 82
4.11.2 常見架構模式詳細分析 83
4.11.3 架構選型考慮因素 84
4.11.4 架構選型案例分析 84
工具
5.1?理解問題的常用方法 87
5.1.1 觀察法 87
5.1.2 訪談法 87
5.1.3 文檔分析法 88
5.1.4 思維導圖法 88
5.1.5 魚骨圖法 88
5.1.6 標桿分析法 89
5.1.7 模擬與實驗法 89
5.1.8 總結 90
5.2?探索解決方案的常用方法 90
5.2.1 頭腦風暴法 90
5.2.2 逆向思維法 91
5.2.3 類比法 91
5.2.4 分治法 91
5.2.5 文獻研究法 92
5.2.6 家咨詢法 92
5.2.7 原型法 93
5.2.8 總結 93
5.3?展示設計的常用方法 93
5.3.1 可視化圖表法 94
5.3.2 故事板法 95
5.3.3 對比分析法 95
5.3.4 案例分析法 96
5.3.5 交互式展示法 96
5.3.6 文檔說明法 96
5.3.7 總結 97
5.4?評估設計方案的常用方法 97
5.4.1 功能完整性評估法 97
5.4.2 性能評估法 98
5.4.3 可維護性評估法 98
5.4.4 可擴展性評估法 99
5.4.5 性評估法 99
5.4.6 成本效益評估法 99
5.4.7 風險評估法 100
5.4.8 總結 100
5.5?DevEco Studio工具簡介 101
5.5.1 DevEco Studio點 101
5.5.2 應用/元服務開發流程 101
5.5.3 下載、安裝DevEco
Studio 102
5.5.4 啟動DevEco Studio 104
5.5.5 創建虛擬機 105
5.6?Command Line Tools工具簡介?109
5.6.1 命令行工具獲取 109
5.6.2 配置環境變量 110
5.6.3 代碼檢查codelinter 110
5.6.4 三方庫的管理ohpm 111
5.6.5 命令行解析hstack 112
5.6.6 編譯構建hvigorw 113
5.7?ohpm-repo工具簡介 113
5.7.1 安裝ohpm-repo工具 113
5.7.2 啟動ohpm-repo 114
5.8?倉頡件 115
5.8.1 DevEco Studio Cangjie Plugin概述 115
5.8.2 設置安裝目錄 115
5.8.3 安裝本地件 116
5.8.4 驗證 119
5.9?代碼管理工具Git介紹 119
5.9.1 Git的誕生與發展 119
5.9.2 Git的核心概念 119
5.9.3 Git的基本作 121
5.9.4 Git在團隊協作中的勢......122
5.9.5 Git的進應用 122
5.10?敏捷開發方法論 123
5.10.1 敏捷開發方法論的誕生與
發展 123
5.10.2 敏捷開發的核心原則 124
5.10.3 常見的敏捷開發框架 124
5.10.4 敏捷開發在團隊中的實施
要點 126
5.10.5 敏捷開發的勢與
挑戰 126
編程語言
6.1?常用鴻蒙編程語言 129
6.1.1 鴻蒙編程語言發展史 129
6.1.2 鴻蒙編程語言的選擇 129
6.2?初識ArkTS 130
6.2.1 ArkTS與JS/TS的
關系 130
6.2.2 ArkTS與TS的差異 131
6.2.3 ArkTS對於UI的支持 132
6.2.4 ArkTS性 132
6.3?實戰:編寫第一個ArkTS應用 133
6.3.1 選擇創建新項目 134
6.3.2 選擇模板 134
6.3.3 配置項目的信息 135
6.3.4 自動生成工程代碼 136
6.3.5 預覽項目 137
6.3.6 運行項目 137
6.4?初識倉頡 138
6.4.1 倉頡性 139
6.4.2 高效編程 140
6.4.3 可靠 141
6.4.4 輕松並發 141
6.4.5 越性能 142
6.5?實戰:編寫第一個倉頡應用 143
6.5.1 選擇創建新項目 143
6.5.2 選擇模板 144
6.5.3 配置項目的信息 144
6.5.4 自動生成工程代碼 145
6.5.5 使用本地模擬器運行
應用 146
6.6?方舟編譯器原理 147
6.6.1 OpenArkCompiler版本 147
6.6.2 編譯工具鏈 148
6.6.3 運行時 148
6.6.4 運行時設計點 149
UI設計
7.1?鴻蒙UI設計理念 152
7.1.1 One萬物歸一回歸本源 152
7.1.2 Harmonious一生為二平衡
共生 152
7.1.3 Universe三生萬物演化
自如 152
7.2?聲明式UI開發框架 153
7.2.1 ArkUI基本概念 153
7.2.2 ArkUI主要征 154
7.2.3 基於ArkTS的聲明式開發
範式 155
7.3?視覺風格 156
7.3.1 色彩 156
7.3.2 字體排印 157
7.3.3 應用圖標 158
7.3.4 系統圖標 159
7.3.5 實戰:使用系統圖標 159
7.4?布局 165
7.4.1 窗口狀態 166
7.4.2 像素單位 166
7.4.3 斷點 167
7.4.4 柵格系統 168
7.4.5 響應式布局 169
7.5?實戰:ArkUI容器組件開發 171
7.5.1 Column和Row 171
7.5.2 ColumnSplit和RowSplit 172
7.5.3 Flex 174
7.5.4 Grid和GridItem 175
7.5.5 GridRow和GridCol 176
7.5.6 List、ListItem和ListItemGroup 177
7.5.7 Navigator 178
7.5.8 RelativeContainer 182
7.5.9 Stack 183
7.5.10 Swiper 184
7.5.11 Tabs和TabContent 185
7.6?實戰:使用ArkUI實現“計算器”?186
7.6.1 新增Calculator.ets的
文件 186
7.6.2 實現遞歸運算 186
7.6.3 實現輸入字符串轉為字符串
數組 188
7.6.4 新增CalculatorButtonInfo.ets的文件 188
7.6.5 實現CalculatorButton
組件 189
7.6.6 構造整體頁面 190
7.6.7 運行 191
7.7?控件 192
7.8?實戰:ArkUI基礎組件開發 193
7.8.1 Button 193
7.8.2 Checkbox 194
7.8.3 CheckboxGroup 195
7.8.4 Image 196
7.8.5 LoadingProgress 198
7.8.6 Progress 198
7.8.7 Radio 199
7.8.8 RichText 200
7.8.9 ScrollBar 201
7.8.10 Select 202
7.8.11 Slider 203
7.8.12 Text 204
7.8.13 TextArea 206
7.8.14 TextInput 207
7.9?多設備響應式設計 208
7.9.1 背景 208
7.9.2 定義及目標 209
7.9.3 基礎知識 210
7.10?實戰:開發一多圖片查看器 211
7.10.1 UX設計 212
7.10.2 架構設計 213
7.10.3 pictureView模塊實現 217
7.10.4 base模塊實現 227
7.10.5 default模塊實現 229
線程模型設計
8.1?Stage模型開發概述 232
8.1.1 Stage模型的設計思想 232
8.1.2 Stage模型的基本概念 232
8.2?Stage模型應用組件 234
8.2.1 應用/組件級配置 234
8.2.2 UIAbility組件 234
8.2.3 ExtensionAbility組件 239
8.2.4 AbilityStage組件容器 239
8.2.5 應用上下文Context 241
8.2.6 組件啟動規則 242
8.3?應用間跳轉 243
8.3.1 應用場景 243
8.3.2 應用跳轉的兩種類型 244
8.4?實戰:通過應用拉起應用?244
8.4.1 應用 244
8.4.2 應用分類 244
8.4.3 拉起應用 245
8.5?進程模型 248
8.6?線程模型 249
8.6.1 主線程 250
8.6.2 TaskPool Worker線程 250
8.6.3 Worker線程 250
8.6.4 TaskPool和Worker的
對比 251
8.6.5 實戰:使用EventHub進行線程內通信 252
8.7?並發概述 254
8.8?異步並發 255
8.8.1 Promise 255
8.8.2 async/await 256
8.8.3 實戰:異步並發的例子 257
8.9?多線程並發 258
8.9.1 內存共享模型 258
8.9.2 Actor模型 259
8.9.3 實戰:使用TaskPool 259
8.9.4 實戰:使用Worker 261
通信設計
9.1?本地過程調用 266
9.1.1 本地過程調用的概念 266
9.1.2 本地過程調用的實現 266
9.2?遠程過程調用 268
9.2.1 遠程過程調用原理 268
9.2.2 如何實現遠程過程調用 270
9.2.3 遠程過程調用API 273
9.2.4 遠程過程調用發展歷程 273
9.3?常用網絡I/O模型 274
9.3.1 阻塞I/O模型 274
9.3.2 非阻塞I/O模型 275
9.3.3 I/O覆用模型 276
9.3.4 信號驅動I/O(SIGIO)
模型 277
9.3.5 異步I/O模型 277
9.3.6 幾種I/O模型的比較 278
9.4?I/O作中的常用術語 279
9.4.1 阻塞和非阻塞 279
9.4.2 同步與異步 279
9.4.3 總結 280
9.5?事件驅動 280
9.5.1 事件驅動編程 280
9.5.2 事件循環(Event Loop)的
實現 281
9.5.3 Reactor模型 281
9.5.4 Proactor模型 283
9.6?公共事件概述 284
9.6.1 公共事件的分類 285
9.6.2 公共事件的開發 286
9.7?實戰:訂閱、發布、取消公共事件 287
9.7.1 添加按鈕 287
9.7.2 添加Text顯示接收的
事件 288
9.7.3 設置按鈕的事件
方法 288
9.7.4 運行 290
9.8?並發線程間通信 291
9.8.1 實戰:TaskPool任務與宿主線程通信 291
9.8.2 Worker和宿主線程的時消息通信 293
9.9?Emitter概述 294
9.9.1 訂閱 295
9.9.2 取消訂閱 295
9.9.3 發送事件 295
9.10?實戰:使用Emitter進行線程間通信?296
9.10.1 添加按鈕 296
9.10.2 添加Text顯示接收的
事件 297
9.10.3 設置按鈕的事件
方法 297
9.10.4 運行 298
9.11?HTTP數據請求概述 299
9.11.1 HTTP請求方法 299
9.11.2 HTTP狀態碼 299
9.12?實戰:通過HTTP請求數據?300
9.12.1 準備一個HTTP服務
接口 300
9.12.2 添加使用Button組件來觸發 300
9.12.3 發起HTTP請求 301
9.12.4 增加權限 302
9.12.5 運行 302
9.13?Web組件概述 303
9.13.1 加載本地網頁 303
9.13.2 加載在線網頁 304
9.13.3 隱私模式加載在線網頁 304
9.13.4 網頁縮放 305
9.13.5 文本縮放 305
9.13.6 Web組件事件 306
9.13.7 Web和JavaScript
交互 306
9.13.8 處理頁面導航 310
9.14?實戰:Web組件加載在線網頁?311
9.14.1 準備一個在線網頁地址 311
9.14.2 聲明網絡訪問權限 311
9.14.3 發起HTTP請求 312
9.14.4 運行 312
持久化設計
10.1?分布式數據服務概述 315
10.1.1 分布式數據服務基本
概念 315
10.1.2 分布式數據服務運作
機制 317
10.1.3 分布式數據服務約束與
限制 318
10.2?分布式數據服務開發步驟 319
10.2.1 導入模塊 319
10.2.2 構造分布式數據庫管理類
實例 319
10.2.3 獲取/創建分布式
數據庫 320
10.2.4 訂閱分布式數據庫數據
變化 320
10.2.5 將數據寫入分布式
數據庫 321
10.2.6 查詢分布式數據庫
數據 321
10.3?關系型數據庫概述 322
10.3.1 基本概念 322
10.3.2 運作機制 323
10.3.3 默認配置與限制 323
10.4?實戰:關系型數據庫開發 324
10.4.1 作RdbStore 324
10.4.2 賬目信息的表示 327
10.4.3 作賬目信息表 328
10.4.4 設計界面 330
10.4.5 運行 332
10.5?用戶選項概述 333
10.5.1 用戶選項運作機制 333
10.5.2 約束與限制 334
10.6?實戰:用戶選項開發 334
10.6.1 作Preferences 335
10.6.2 賬目信息的表示 337
10.6.3 設計界面 337
10.6.4 運行 339

11.1?基本概念 342
11.1.1 威脅、策略和
機制 342
11.1.2 密碼與數字簽名 343
11.2?加密算法 344
11.2.1 對稱加密 344
11.2.2 使用對稱密鑰加密的數字
簽名 345
11.2.3 非對稱加密 345
11.2.4 使用公鑰加密的數字
簽名 346
11.3?通道 347
11.3.1 SSL/TLS 347
11.3.2 SSL握手過程 347
11.3.3 HTTPS 351
11.4?訪問控制概述 351
11.4.1 火墻 351
11.4.2 堡壘機 352
11.4.3 拒服務 352
11.4.4 訪問控制的模型 353
11.5?HarmonyOS的訪問控制 354
11.5.1 權限含的基本概念 354
11.5.2 權限等級說明 356
11.5.3 權限類型 356
11.5.4 訪問控制開發步驟 356
11.6?實戰:訪問控制授權 358
11.6.1 場景介紹 359
11.6.2 聲明訪問的權限 359
11.6.3 申請授權user_grant
權限 360
11.6.4 運行 361
測試
12.1?應用測試概述 364
12.2?單元測試 364
12.2.1 單元測試框架功能性 364
12.2.2 基礎流程 365
12.2.3 斷言庫 366
12.2.4 自定義斷言 369
12.3?UI測試 371
12.3.1 UI測試框架功能性 371
12.3.2 Driver使用說明 372
12.3.3 On使用說明 373
12.3.4 Component使用說明 374
12.3.5 UiWindow使用說明 375
12.4?實戰:UI測試 376
12.4.1 編寫UI測試腳本 376
12.4.2 運行UI測試腳本 378
調調測
13.1?Performance Analysis Kit簡介?381
13.1.1 使用場景 381
13.1.2 範圍 381
13.1.3 性 381
13.1.4 故障分析 382
13.2?HiLog使用指導 382
13.2.1 接口說明 382
13.2.2 實戰:HiLog開發示例 383
13.3?HiAppEvent使用指導 385
13.3.1 接口說明 385
13.3.2 實戰:HiAppEvent使用
示例 386
13.4?HiTraceMeter使用指導 388
13.4.1 基本概念 388
13.4.2 接口說明 389
13.4.3 實戰:HiTraceMeter使用
示例 389
13.5?HiTraceChain使用指導 392
13.5.1 基本概念 392
13.5.2 實戰:HiTraceChain使用
示例 392
模擬器與真機的差異
參考文獻

最後瀏覽商品 (1)