班級規模及環境--熱線:4008699035 手機:15921673576( 微信同號) |
每個班級的人數限3到5人,互動授課, 保障效果,小班授課。 |
上間和地點 |
上部份地點:【上?!客瑵髮W(滬西)/新城金郡商務樓(11號線白銀路站)【深圳分部】:電影大廈(地鐵一號線大劇院站)/深圳大學成教院【北京分部】:北京中山學院/福鑫大樓【南京分部】:金港大廈(和燕路)【武漢分部】:佳源大廈(高新二路)【成都分部】:領館區1號(中和大道)【沈陽分部】:沈陽理工大學/六宅臻品【鄭州分部】:鄭州大學/錦華大廈【石家莊分部】:河北科技大學/瑞景大廈 最近開間(周末班/連續班/晚班):2019年1月26日 |
實驗設備 |
◆小班教學,教學效果好 ☆注重質量☆邊講邊練 ☆合格學員免費推薦工作 ★實驗設備請點擊這兒查看★ |
質量保障 |
1、培訓過程中,如有部分內容理解不透或消化不好,可免費在以后培訓班中重聽; 2、培訓結束后,授課老師留給學員聯系方式,保障培訓效果,免費提供課后技術支持。 3、培訓合格學員可享受免費推薦就業機會?!詈细駥W員免費頒發相關工程師等資格證書,提升職業資質。專注高端技術培訓15年,端海學員的能力得到大家的認同,受到用人單位的廣泛贊譽,端海的證書受到廣泛認可。 |
部份程大綱 |
|
- 第1章 課程介紹
本課程將從基本語法講起,逐漸深入,幫助同學深度理解Go語言面向接口,函數式編程,錯誤處理,測試,并行計算等元素,并帶領大家實現一個分布式爬蟲的實戰項目。
- 1-1 課程導讀 試看
1-2 安裝與環境
第2章 基礎語法
量,常量,類型,選擇,循環,函數,指針,本章節帶領大家學習一門新語言所需的必備語法知識。讓大家對Go語言有一個初步的認識!
- 2-1 變量定義
2-2 內建變量類型
2-3 常量與枚舉
2-4 條件語句
2-5 循環
2-6 函數
2-7 指針
第3章 內建容器
本章節我們來學習數組,切片,Map和字符串。在Go語言中,我們一般不直接使用數組,而是使用切片來管理線性表結構,它的語法類似python的list,不過更強大哦。當然,Map和字符串的學習也是必不可少。掌握至此,我們就可以寫一些簡單的算法了,刷刷leetcode不在話下,我們就來試一試。...
- 3-1 數組
3-2 切片的概念
3-3 切片的操作
3-4 Map
3-5 Map例題
3-6 字符和字符串處理
第4章 面向“對象”
Go語言沒有class,只有struct。我們來看看struct如何使用,Go語言給結構體定義類似方法或者成員函數的做法非常有特色。我們還將學習Go語言的包的概念,以及如何封裝,如何擴展已有類型等。我們還將學習GOPATH和Go語言項目的目錄結構,如何從網上下載依賴包等一系列項目相關的知識。我們將以“樹”的結構和遍歷作為貫穿本章...
- 4-1 結構體和方法
4-2 包和封裝
4-3 擴展已有類型
4-4 GOPATH以及目錄結構
第5章 面向接口
這一章我們從duck typing的概念開始學起,還將探討其他語言中對duck typing的支持,由此引出接口的概念。我們將深入理解Go語言接口的內部實現以及使用接口實現組合的模式。
- 5-1 duck typing的概念
5-2 接口的定義和實現
5-3 接口的值類型
5-4 接口的組合
5-5 常用系統接口
第6章 函數式編程
在其他通用語言中,函數式編程是“高級”概念,但對于Go語言卻非常基本。本章我們將講解函數式編程的概念并且比較其他語言函數式編程的實現方法。我們將重點理解閉包。這章中我們將采用多樣的例題來幫助大家更好的理解閉包,函數作為一等公民等及其常見概念和應用方法。...
- 6-1 函數式編程 試看
6-2 函數式編程例一 試看
6-3 函數式編程例二
第7章 錯誤處理和資源管理
這將是本課程最“無聊”的一章,但卻是區分出優秀軟件工程師的關鍵能力。Go語言獨特的defer/panic/recover,以及錯誤機制,在社區有著廣泛的爭論。我們來深入理解Go語言的錯誤處理機制,看看Go語言如何區分錯誤以及異常。最后,我們實現一個Web應用微型項目,采用商業服務的錯誤處理思路,結合函數式編程,來演示Go語言錯誤...
- 7-1 defer調用
7-2 錯誤處理概念
7-3 服務器統一出錯處理
7-4 panic和recover
7-5 服務器統一出錯處理2
第8章 測試與性能調優
Go語言的測試不同于其他如junit,Go語言采用“表格驅動測試”的理念。我們將學習和體會這樣的理念,并用Go語言的測試支持庫來實踐表格驅動測試,并做代碼覆蓋和性能檢測,通過內建的性能調優工具來優化我們之前的算法。最后演示了對http服務器的多種粒度的測試。...
- 8-1 測試
8-2 代碼覆蓋率和性能測試
8-3 使用pprof進行性能調優
8-4 測試http服務器(上)
8-5 測試http服務器(下)
8-6 生成文檔和示例代碼
8-7 測試總結
第9章 Goroutine
這一章開始我們進入并發編程。我們講解Goroutine,協程的概念,以及背后的Go語言調度器。
- 9-1 goroutine
9-2 go語言的調度器
第10章 Channel
Channel是Goroutine之間通信的橋梁,它和函數一樣是一等公民。在介紹完Channel的語法及運行方式后,我們將采用數個例題來演示Go語言并發編程中最常見的任務極其解決模式。
- 10-1 channel
10-2 使用Channel等待任務結束
10-3 使用Channel進行樹的遍歷
10-4 用select進行調度
10-5 傳統同步機制
第11章 http及其他標準庫
這里我們簡要介紹一下Go語言中非常重要而且封裝良好的http標準庫,回顧并實現http客戶端和服務器。我們還介紹了Go語言中其他的標準庫。
- 11-1 http標準庫
11-2 其它標準庫
第12章 迷宮的廣度優先搜索
這章我們將綜合運用學過的知識實現一個廣度優先算法來解迷宮,為接下來的實戰項目做好技術和算法上的準備。廣度優先算法不僅是面試和工作中常用的技術,而且實現上相比大部分其它算法更為復雜,是檢驗是否熟練掌握一門語言的經典例題。讓我們來試一試吧。...
- 12-1 迷宮_算法
12-2 迷宮代碼實現
第13章 開始實戰項目
至此為止,恭喜同學完成了這門課Go語言部分的學習。接下來我們來進入實戰項目。本章將介紹項目的具體內容,課題的選擇,技術選型,總體架構,以及實現步驟。
- 13-1 爬蟲項目介紹
13-2 總體算法
第14章 單任務版爬蟲
在考慮性能之前我們首先應該考慮正確性。單任務版爬蟲確保我們能夠正確爬取我們所需的信息。我們應用了之前練習的廣度優先算法,抽象出Parser和Fetcher,學習正則表達式,成功實現并運行單任務版爬蟲。
- 14-1 獲得初始頁面內容
14-2 正則表達式
14-3 提取城市和url
14-4 單任務版爬蟲的架構
14-5 Engine 與 Parser
14-6 測試CityListParser
14-7 城市解析器
14-8 用戶信息解析器(上)
14-9 用戶信息解析器(下)
14-10 單任務版爬蟲性能
第15章 并發版爬蟲
為了提升爬蟲性能,我們抽象出Worker的概念,并添加調度器,實現并發版爬蟲。我們應用接口的概念,完成了由簡至復雜的多個調度器的實現。同學可以在實戰項目中更真實的體會并學習Go語言并發編程的多種模式。
- 15-1 并發版爬蟲架構
15-2 簡單調度器
15-3 并發調度器
15-4 隊列實現調度器
15-5 重構和總結
15-6 更多城市
15-7 更多用戶與去重
第16章 數據存儲和展示
是時候檢驗我們項目的成果了。我們將采用Docker+ElasticSearch來存儲我們爬取的信息。在簡單了解Docker和ElasticSearch后,我們將使用ElasticSearch的Go語言客戶端將爬取數據寫入。之后我們使用Go語言的模板引擎迅速實現前端網頁展示。至此,我們已經可以嘗試自己喜歡的搜索條件去查看數據啦。...
- 16-1 ItemSaver的架構
16-2 Docker和ElasticSearch介紹
16-3 Docker的安裝和使用
16-4 ElasticSearch入門
16-5 向ElasticSearch存儲數據
16-6 完整爬蟲的運行與數據存儲
16-7 添加URL與ID
16-8 重構與運行
16-9 標準模板庫介紹
16-10 實現前端展示頁面
16-11 完善前端展示
第17章 分布式爬蟲
本章在簡要介紹分布式概念后,將我們的并發爬蟲改寫成分布式。我們在很少改動的情況下,加入jsonrpc客戶/服務端,實現并部署分布式爬蟲。最后探討實戰項目的更多改進方案。
- 17-1 分布式系統簡介
17-2 分布式爬蟲架構
17-3 jsonrpc的使用
17-4 ItemSaver服務
17-5 整合ItemSaver服務
17-6 解析器的序列化
17-7 實現爬蟲服務
17-8 完整分布式爬蟲的運行
17-9 使用連接池鏈接爬蟲集群
|