中小學(xué)人工智能系列教材-Python編程與人工智能啟蒙
定 價:32 元
- 作者:李直旭劉安
- 出版時間:2019/1/1
- ISBN:9787567226289
- 出 版 社:蘇州大學(xué)出版社
- 中圖法分類:G634.671
- 頁碼:196
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書是“人工智能與青少年編程“系列教材中的第1本。適用6-15歲學(xué)生在家長或老師的指導(dǎo)下閱讀和學(xué)習(xí)。本書以Python語言為載體,將孩子們引進(jìn)人工智能的奇妙世界。Python語言是最新流行的編程語言,適用于游戲和人工智能編程。主要有三個部分:首先以一款叫CodeMonkey的小游戲帶領(lǐng)孩子們初步建立對編程的感性認(rèn)識;之后詳細(xì)介紹Python語言的基本語法和使用方法;第三部分高階篇則是在孩子們初步掌握Python語言的基礎(chǔ)上,介紹當(dāng)前流行的信息技術(shù),如人工智能,機器學(xué)習(xí),深度學(xué)習(xí)和大數(shù)據(jù)技術(shù)等知識。本書后臺配備網(wǎng)站技術(shù)平臺和手機APP應(yīng)用,設(shè)置了一些項目實戰(zhàn)的篇章和素材,給學(xué)有余力的孩子更多的編程實戰(zhàn)演練。
這本書不僅可用于有能力的家長在家親自指導(dǎo)孩子自學(xué)編程,也可以作為相關(guān)的兒童培訓(xùn)機構(gòu)進(jìn)行兒童編程培訓(xùn)的教材。同時也是拓展編程的高階知識并進(jìn)行實戰(zhàn)演練的指導(dǎo)用書。
1 關(guān)于軟件工程生產(chǎn)力1
1.1 從另一個角度看“提高軟件工程生產(chǎn)力” 1
1.1.1 從勞動力要素考慮提高軟件工程生產(chǎn)力 2
1.1.2 從勞動對象要素考慮提高軟件工程生產(chǎn)力 2
1.1.3 從生產(chǎn)工具要素考慮提高軟件工程生產(chǎn)力 3
1.1.4 生產(chǎn)力三要素的意義3
1.2 Jenkins 介紹 4
1.3 Jenkins 與DevOps 4
1.4 本章小結(jié) 5
2 pipeline 入門6
2.1 pipeline 是什么 6
2.2 Jenkinsfile 又是什么 7
2.3 pipeline 語法的選擇 7
2.4 創(chuàng)建一個pipeline 9
2.5 從版本控制庫拉取pipeline 11
2.6 使用Maven 構(gòu)建Java 應(yīng)用 12
2.7 本章小結(jié) 15
3 pipeline 語法講解16
3.1 必要的Groovy 知識 16
3.2 pipeline 的組成 18
3.2.1 pipeline 簡結(jié)構(gòu) 18
3.2.2 步驟 19
3.3 post 部分 20
3.4 pipeline 支持的指令 21
3.5 配置pipeline 本身 22
3.6 在聲明式pipeline 中使用腳本 24
3.7 pipeline 內(nèi)置基礎(chǔ)步驟 25
3.7.1 文件目錄相關(guān)步驟 25
3.7.2 制品相關(guān)步驟 27
3.7.3 命令相關(guān)步驟 28
3.7.4 其他步驟 29
3.7.5 小貼士 31
3.8 本章小結(jié) 36
4 環(huán)境變量與構(gòu)建工具37
4.1 環(huán)境變量 37
4.1.1 Jenkins 內(nèi)置變量 37
4.1.2 自定義pipeline 環(huán)境變量 38
4.1.3 自定義全局環(huán)境變量 39
4.2 構(gòu)建工具 40
4.2.1 構(gòu)建工具的選擇 40
4.2.2 tools 指令介紹 41
4.2.3 JDK 環(huán)境搭建 41
4.2.4 Maven 42
4.2.5 Go 語言環(huán)境搭建 45
4.2.6 Python 環(huán)境搭建 46
4.3 利用環(huán)境變量支持更多的構(gòu)建工具 47
4.4 利用tools 作用域?qū)崿F(xiàn)多版本編譯 48
4.5 本章小結(jié) 49
5 代碼質(zhì)量50
5.1 靜態(tài)代碼分析 50
5.1.1 代碼規(guī)范檢查 50
5.1.2 使用PMD 進(jìn)行代碼規(guī)范檢查 51
5.1.3 各靜態(tài)代碼分析器之間的區(qū)別 53
5.2 單測試 53
5.2.1 JUnit 單測試報告 53
5.2.2 JaCoCo 實現(xiàn)代碼覆蓋率 55
5.2.3 代碼覆蓋率越高,軟件的質(zhì)量就越高嗎 58
5.3 性能測試 59
5.3.1 準(zhǔn)備性能測試環(huán)境 59
5.3.2 運行JMeter 測試 59
5.4 SonarQube:持續(xù)代碼質(zhì)量檢查 61
5.4.1 Maven 與SonarQube 集成 62
5.4.2 Jenkins 與SonarQube 集成 64
5.4.3 使用SonarQube Scanner 實現(xiàn)代碼掃描 67
5.4.4 SonarQube 集成p3c 68
5.4.5 將分析報告推送到GitLab 70
5.5 Allure 測試報告:更美觀的測試報告 72
5.5.1 Allure 測試報告介紹 72
5.5.2 集成Allure、Maven、Jenkins 73
5.6 當(dāng)我們談質(zhì)量時,談的是什么 76
5.7 本章小結(jié) 76
6 觸發(fā)pipeline 執(zhí)行77
6.1 什么是觸發(fā)條件 77
6.2 時間觸發(fā) 77
6.2.1 定時執(zhí)行:cron 77
6.2.2 輪詢代碼倉庫:pollSCM 79
6.3 事件觸發(fā) 79
6.3.1 由上游任務(wù)觸發(fā):upstream 79
6.3.2 GitLab 通知觸發(fā) 80
6.3.3 在pipeline 中實現(xiàn)GitLab trigger 84
6.4 將構(gòu)建狀態(tài)信息推送到GitLab 85
6.5 使用Generic Webhook Trigger 插件實現(xiàn)觸發(fā) 87
6.5.1 從Webhook 請求中提取參數(shù)值 89
6.5.2 觸發(fā)具體某個Jenkins 項目 90
6.5.3 根據(jù)請求參數(shù)值判斷是否觸發(fā)Jenkins 項目執(zhí)行 91
6.5.4 控制打印內(nèi)容 91
6.5.5 控制響應(yīng) 92
6.6 本章小結(jié) 92
7 多分支構(gòu)建93
7.1 創(chuàng)建多分支pipeline 93
7.2 根據(jù)分支部署到不同的環(huán)境 96
7.3 when 指令的用法 97
7.4 GitLab trigger 對多分支pipeline 的支持 99
7.5 Generic Webhook Trigger 插件在多分支pipeline 場景下的應(yīng)用 99
7.6 本章小結(jié) 100
8 參數(shù)化pipeline 101
8.1 什么是參數(shù)化pipeline 101
8.2 使用parameters 指令 101
8.2.1 parameters 指令支持的參數(shù)類型 102
8.2.2 多參數(shù) 104
8.3 由另一個pipeline 傳參并觸發(fā) 104
8.4 使用Conditional BuildStep 插件處理復(fù)雜的判斷邏輯 106
8.5 使用input 步驟 107
8.5.1 input 步驟的簡單用法 108
8.5.2 input 步驟的復(fù)雜用法 109
8.6 小貼士 111
8.6.1 獲取上游pipeline 的信息 111
8.6.2 設(shè)置手動輸入步驟時后,pipeline 自動中止 111
8.7 本章小結(jié) 111
9 憑證管理112
9.1 為什么要管理憑證 112
9.2 憑證是什么 112
9.3 創(chuàng)建憑證 113
9.4 常用憑證 114
9.4.1 Secret text 114
9.4.2 Username with password 115
9.4.3 Secret file 115
9.4.4 H Username with private key 116
9.5 優(yōu)雅地使用憑證 117
9.6 使用HashiCorp Vault 118
9.6.1 HashiCorp Vault 介紹 118
9.6.2 集成HashiCorp Vault 118
9.7 在Jenkins 日志中隱藏敏感信息 120
9.8 本章小結(jié) 122
10 制品管理123
10.1 制品是什么 123
10.2 制品管理倉庫 123
10.3 過渡到制品庫 124
10.4 管理Java 棧制品 125
10.4.1 使用Maven 發(fā)布制品到Nexus 中 125
10.4.2 使用Nexus 插件發(fā)布制品 127
10.5 使用Nexus 管理Docker 鏡像 128
10.5.1 Nexus:創(chuàng)建Docker 私有倉庫 129
10.5.2 創(chuàng)建Docker 私有倉庫憑證 130
10.5.3 構(gòu)建并發(fā)布Docker 鏡像 130
10.5.4 小貼士 131
10.6 管理原始制品 131
10.6.1 創(chuàng)建raw 倉庫 131
10.6.2 上傳制品,獲取制品 132
10.7 從其他pipeline 中拷貝制品 134
10.8 版本號管理 135
10.8.1 語義化版本 135
10.8.2 版本號的作用 136
10.8.3 方便生成版本號的Version Number 插件 137
10.9 小貼士 138
10.9.1 Nexus 匿名用戶權(quán)限問題 138
10.9.2 制品庫的容量要大 139
10.10 本章小結(jié) 139
11 可視化構(gòu)建及視圖140
11.1 Green Balls 插件 140
11.2 Build Monitor View 插件 141
11.3 使用視圖 143
11.3.1 使用項目的維度建立視圖 143
11.3.2 設(shè)置默認(rèn)視圖 145
11.4 本章小結(jié) 146
12 自動化部署147
12.1 關(guān)于部署有什么好說的 147
12.1.1 部署不等于發(fā)布 147
12.1.2 什么是自動化部署 148
12.1.3 自動化運維工具解決的問題 148
12.2 Jenkins 集成Ansible 實現(xiàn)自動化部署 149
12.2.1 Ansible 介紹 149
12.2.2 Jenkins 與Ansible 集成 150
12.2.3 Ansible 插件詳解 153
12.3 手動部署比自動化部署更可靠嗎 156
12.4 如何開始自動化部署 157
12.5 小貼士 158
12.6 本章小結(jié) 159
13 通知160
13.1 郵件通知 160
13.1.1 使用Jenkins 內(nèi)置郵件通知功能 160
13.1.2 使用Email Extension 插件發(fā)送通知 162
13.2 釘釘通知 164
13.3 HTTP 請求通知 166
13.4 本章小結(jié) 168
14 分布式構(gòu)建與并行構(gòu)建 169
14.1 Jenkins 架構(gòu) 169
14.2 增加agent 170
14.2.1 對agent 打標(biāo)簽 170
14.2.2 通過JNLP 協(xié)議增加agent 171
14.2.3 通過JNLP 協(xié)議增加Windows agent 175
14.2.4 通過Swarm 插件增加agent 175
14.2.5 agent 部分詳解 176
14.2.6 小結(jié) 180
14.3 將構(gòu)建任務(wù)交給Docker 180
14.3.1 在Jenkins agent 上安裝Docker 180
14.3.2 使用Docker 180
14.3.3 配置Docker 私有倉庫 181
14.4 并行構(gòu)建 182
14.4.1 在不同的分支上應(yīng)用并行構(gòu)建 183
14.4.2 并行步驟 184
14.4.3 并行階段與并行步驟之間的區(qū)別 185
14.5 本章小結(jié) 185
15 擴展pipeline 186
15.1 為什么要擴展pipeline 186
15.2 在pipeline 中定義函數(shù) 186
15.3 使用共享庫擴展 187
15.3.1 創(chuàng)建共享庫 187
15.3.2 使用共享庫 189
15.3.3 @Library 的更多用法 189
15.3.4 共享庫結(jié)構(gòu)詳細(xì)介紹 190
15.3.5 使用共享庫實現(xiàn)pipeline 模板 192
15.4 通過Jenkins 插件實現(xiàn)pipeline 步驟 193
15.4.1 生成Jenkins 插件代碼骨架 193
15.4.2 啟動Jenkins 測試:mvn hpi:run 196
15.4.3 在Jenkinsfile 中使用greet 步驟 196
15.4.4 全局配置插件 197
15.5 本章小結(jié) 199
16 Jenkins 運維200
16.1 認(rèn)證管理 200
16.1.1 使用Jenkins 自帶的用戶數(shù)據(jù)庫 200
16.1.2 使用LDAP 認(rèn)證 202
16.2 授權(quán)管理 204
16.2.1 使用Role-based Authorization Strategy 插件授權(quán) 205
16.2.2 管理角色 206
16.2.3 權(quán)限大全 207
16.2.4 角色分配 208
16.2.5 小結(jié) 210
16.3 Jenkins 監(jiān)控 210
16.3.1 使用Monitoring 插件監(jiān)控 210
16.3.2 使用Prometheus 監(jiān)控 211
16.4 Jenkins 備份 213
16.4.1 JENKINS_HOME 介紹 213
16.4.2 使用Periodic Backup 插件進(jìn)行備份 214
16.5 漢化 216
16.6 Jenkins 配置即代碼 216
16.7 使用init.groovy 配置Jenkins 217
16.8 本章小結(jié) 219
17 自動化運維經(jīng)驗 220
17.1 小團(tuán)隊自動化運維實踐經(jīng)驗 220
17.1.1 先做監(jiān)控和告警 220
17.1.2 一開始就應(yīng)該做配置版本化 223
17.1.3 Jenkins 化:將打包工作交給Jenkins 223
17.1.4 將制品交給Nexus 管理 224
17.1.5 讓Jenkins 幫助我們執(zhí)行Ansible 225
17.1.6 小結(jié) 225
17.2 ChatOps 實踐 226
17.2.1 Rocket.Chat 226
17.2.2 Hubot 227
17.2.3 Hubot 與Jenkins 集成 229
17.2.4 Jenkins 推送消息到Rocket.Chat 231
17.3 本章小結(jié) 231
18 如何設(shè)計pipeline 232
18.1 設(shè)計pipeline 的步驟 232
18.2 以X 網(wǎng)站為例,設(shè)計pipeline 233
18.3 X 網(wǎng)站pipeline 詳解 236
18.3.1 盡可能將所有的具體操作都隱藏到共享庫中 236
18.3.2 只生成一次制品 236
18.3.3 對不同環(huán)境采用同一種部署方式 237
18.3.4 配置版本化 238
18.3.5 系統(tǒng)集成測試 238
18.3.6 如何實現(xiàn)指定版本部署 238
18.3.7 主干開發(fā),分支發(fā)布 239
18.4 本章小結(jié)239