中小學(xué)人工智能系列教材-Python編程與人工智能啟蒙
定 價(jià):32 元
- 作者:李直旭劉安
- 出版時(shí)間:2019/1/1
- ISBN:9787567226289
- 出 版 社:蘇州大學(xué)出版社
- 中圖法分類(lèi):G634.671
- 頁(yè)碼:196
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16K
本書(shū)是“人工智能與青少年編程“系列教材中的第1本。適用6-15歲學(xué)生在家長(zhǎng)或老師的指導(dǎo)下閱讀和學(xué)習(xí)。本書(shū)以Python語(yǔ)言為載體,將孩子們引進(jìn)人工智能的奇妙世界。Python語(yǔ)言是最新流行的編程語(yǔ)言,適用于游戲和人工智能編程。主要有三個(gè)部分:首先以一款叫CodeMonkey的小游戲帶領(lǐng)孩子們初步建立對(duì)編程的感性認(rèn)識(shí);之后詳細(xì)介紹Python語(yǔ)言的基本語(yǔ)法和使用方法;第三部分高階篇?jiǎng)t是在孩子們初步掌握Python語(yǔ)言的基礎(chǔ)上,介紹當(dāng)前流行的信息技術(shù),如人工智能,機(jī)器學(xué)習(xí),深度學(xué)習(xí)和大數(shù)據(jù)技術(shù)等知識(shí)。本書(shū)后臺(tái)配備網(wǎng)站技術(shù)平臺(tái)和手機(jī)APP應(yīng)用,設(shè)置了一些項(xiàng)目實(shí)戰(zhàn)的篇章和素材,給學(xué)有余力的孩子更多的編程實(shí)戰(zhàn)演練。
這本書(shū)不僅可用于有能力的家長(zhǎng)在家親自指導(dǎo)孩子自學(xué)編程,也可以作為相關(guān)的兒童培訓(xùn)機(jī)構(gòu)進(jìn)行兒童編程培訓(xùn)的教材。同時(shí)也是拓展編程的高階知識(shí)并進(jìn)行實(shí)戰(zhàn)演練的指導(dǎo)用書(shū)。
1 關(guān)于軟件工程生產(chǎn)力1
1.1 從另一個(gè)角度看“提高軟件工程生產(chǎn)力” 1
1.1.1 從勞動(dòng)力要素考慮提高軟件工程生產(chǎn)力 2
1.1.2 從勞動(dòng)對(duì)象要素考慮提高軟件工程生產(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 入門(mén)6
2.1 pipeline 是什么 6
2.2 Jenkinsfile 又是什么 7
2.3 pipeline 語(yǔ)法的選擇 7
2.4 創(chuàng)建一個(gè)pipeline 9
2.5 從版本控制庫(kù)拉取pipeline 11
2.6 使用Maven 構(gòu)建Java 應(yīng)用 12
2.7 本章小結(jié) 15
3 pipeline 語(yǔ)法講解16
3.1 必要的Groovy 知識(shí) 16
3.2 pipeline 的組成 18
3.2.1 pipeline 簡(jiǎn)結(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 語(yǔ)言環(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 單測(cè)試 53
5.2.1 JUnit 單測(cè)試報(bào)告 53
5.2.2 JaCoCo 實(shí)現(xiàn)代碼覆蓋率 55
5.2.3 代碼覆蓋率越高,軟件的質(zhì)量就越高嗎 58
5.3 性能測(cè)試 59
5.3.1 準(zhǔn)備性能測(cè)試環(huán)境 59
5.3.2 運(yùn)行JMeter 測(cè)試 59
5.4 SonarQube:持續(xù)代碼質(zhì)量檢查 61
5.4.1 Maven 與SonarQube 集成 62
5.4.2 Jenkins 與SonarQube 集成 64
5.4.3 使用SonarQube Scanner 實(shí)現(xiàn)代碼掃描 67
5.4.4 SonarQube 集成p3c 68
5.4.5 將分析報(bào)告推送到GitLab 70
5.5 Allure 測(cè)試報(bào)告:更美觀的測(cè)試報(bào)告 72
5.5.1 Allure 測(cè)試報(bào)告介紹 72
5.5.2 集成Allure、Maven、Jenkins 73
5.6 當(dāng)我們談質(zhì)量時(shí),談的是什么 76
5.7 本章小結(jié) 76
6 觸發(fā)pipeline 執(zhí)行77
6.1 什么是觸發(fā)條件 77
6.2 時(shí)間觸發(fā) 77
6.2.1 定時(shí)執(zhí)行:cron 77
6.2.2 輪詢(xún)代碼倉(cāng)庫(kù):pollSCM 79
6.3 事件觸發(fā) 79
6.3.1 由上游任務(wù)觸發(fā):upstream 79
6.3.2 GitLab 通知觸發(fā) 80
6.3.3 在pipeline 中實(shí)現(xiàn)GitLab trigger 84
6.4 將構(gòu)建狀態(tài)信息推送到GitLab 85
6.5 使用Generic Webhook Trigger 插件實(shí)現(xiàn)觸發(fā) 87
6.5.1 從Webhook 請(qǐng)求中提取參數(shù)值 89
6.5.2 觸發(fā)具體某個(gè)Jenkins 項(xiàng)目 90
6.5.3 根據(jù)請(qǐng)求參數(shù)值判斷是否觸發(fā)Jenkins 項(xiàng)目執(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 對(duì)多分支pipeline 的支持 99
7.5 Generic Webhook Trigger 插件在多分支pipeline 場(chǎng)景下的應(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ù)類(lèi)型 102
8.2.2 多參數(shù) 104
8.3 由另一個(gè)pipeline 傳參并觸發(fā) 104
8.4 使用Conditional BuildStep 插件處理復(fù)雜的判斷邏輯 106
8.5 使用input 步驟 107
8.5.1 input 步驟的簡(jiǎn)單用法 108
8.5.2 input 步驟的復(fù)雜用法 109
8.6 小貼士 111
8.6.1 獲取上游pipeline 的信息 111
8.6.2 設(shè)置手動(dòng)輸入步驟時(shí)后,pipeline 自動(dòng)中止 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 制品管理倉(cāng)庫(kù) 123
10.3 過(guò)渡到制品庫(kù) 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 私有倉(cāng)庫(kù) 129
10.5.2 創(chuàng)建Docker 私有倉(cāng)庫(kù)憑證 130
10.5.3 構(gòu)建并發(fā)布Docker 鏡像 130
10.5.4 小貼士 131
10.6 管理原始制品 131
10.6.1 創(chuàng)建raw 倉(cāng)庫(kù) 131
10.6.2 上傳制品,獲取制品 132
10.7 從其他pipeline 中拷貝制品 134
10.8 版本號(hào)管理 135
10.8.1 語(yǔ)義化版本 135
10.8.2 版本號(hào)的作用 136
10.8.3 方便生成版本號(hào)的Version Number 插件 137
10.9 小貼士 138
10.9.1 Nexus 匿名用戶(hù)權(quán)限問(wèn)題 138
10.9.2 制品庫(kù)的容量要大 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 使用項(xiàng)目的維度建立視圖 143
11.3.2 設(shè)置默認(rèn)視圖 145
11.4 本章小結(jié) 146
12 自動(dòng)化部署147
12.1 關(guān)于部署有什么好說(shuō)的 147
12.1.1 部署不等于發(fā)布 147
12.1.2 什么是自動(dòng)化部署 148
12.1.3 自動(dòng)化運(yùn)維工具解決的問(wèn)題 148
12.2 Jenkins 集成Ansible 實(shí)現(xiàn)自動(dòng)化部署 149
12.2.1 Ansible 介紹 149
12.2.2 Jenkins 與Ansible 集成 150
12.2.3 Ansible 插件詳解 153
12.3 手動(dòng)部署比自動(dòng)化部署更可靠嗎 156
12.4 如何開(kāi)始自動(dòng)化部署 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 請(qǐng)求通知 166
13.4 本章小結(jié) 168
14 分布式構(gòu)建與并行構(gòu)建 169
14.1 Jenkins 架構(gòu) 169
14.2 增加agent 170
14.2.1 對(duì)agent 打標(biāo)簽 170
14.2.2 通過(guò)JNLP 協(xié)議增加agent 171
14.2.3 通過(guò)JNLP 協(xié)議增加Windows agent 175
14.2.4 通過(guò)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 私有倉(cāng)庫(kù) 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 擴(kuò)展pipeline 186
15.1 為什么要擴(kuò)展pipeline 186
15.2 在pipeline 中定義函數(shù) 186
15.3 使用共享庫(kù)擴(kuò)展 187
15.3.1 創(chuàng)建共享庫(kù) 187
15.3.2 使用共享庫(kù) 189
15.3.3 @Library 的更多用法 189
15.3.4 共享庫(kù)結(jié)構(gòu)詳細(xì)介紹 190
15.3.5 使用共享庫(kù)實(shí)現(xiàn)pipeline 模板 192
15.4 通過(guò)Jenkins 插件實(shí)現(xiàn)pipeline 步驟 193
15.4.1 生成Jenkins 插件代碼骨架 193
15.4.2 啟動(dòng)Jenkins 測(cè)試:mvn hpi:run 196
15.4.3 在Jenkinsfile 中使用greet 步驟 196
15.4.4 全局配置插件 197
15.5 本章小結(jié) 199
16 Jenkins 運(yùn)維200
16.1 認(rèn)證管理 200
16.1.1 使用Jenkins 自帶的用戶(hù)數(shù)據(jù)庫(kù) 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 自動(dòng)化運(yùn)維經(jīng)驗(yàn) 220
17.1 小團(tuán)隊(duì)自動(dòng)化運(yùn)維實(shí)踐經(jīng)驗(yàn) 220
17.1.1 先做監(jiān)控和告警 220
17.1.2 一開(kāi)始就應(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 實(shí)踐 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è)計(jì)pipeline 232
18.1 設(shè)計(jì)pipeline 的步驟 232
18.2 以X 網(wǎng)站為例,設(shè)計(jì)pipeline 233
18.3 X 網(wǎng)站pipeline 詳解 236
18.3.1 盡可能將所有的具體操作都隱藏到共享庫(kù)中 236
18.3.2 只生成一次制品 236
18.3.3 對(duì)不同環(huán)境采用同一種部署方式 237
18.3.4 配置版本化 238
18.3.5 系統(tǒng)集成測(cè)試 238
18.3.6 如何實(shí)現(xiàn)指定版本部署 238
18.3.7 主干開(kāi)發(fā),分支發(fā)布 239
18.4 本章小結(jié)239