課程簡介
Go語言是谷歌推出的一種全新的編程語言,可以在不損失應(yīng)用程序性能的情況下降低代碼的復(fù)雜性。之所以開發(fā)Go,是因為過去10多年間軟件開發(fā)的難度令人沮喪。Go是谷歌2009發(fā)布的第二款編程語言。2009年7月份,谷歌曾發(fā)布了Simple語言,它是用來開發(fā)Android應(yīng)用,Go有著超強(qiáng)大的開發(fā)效率。
硬件平臺:Go語言設(shè)計支持主流的32位和64位的x86平臺,同時也支持32位的ARM架構(gòu)。
操作系統(tǒng):Go語言在Go1版本上支持Windows, 蘋果Mac OS X, Linux和FreeBSD操作系統(tǒng)
目標(biāo)收益
培訓(xùn)對象
熟悉Go語法,有一定的Linux知識基礎(chǔ)
課程大綱
第一課時: Go詳解 主要介紹Go的語法信息 |
? 對比Go/PHP/JAVA/C/C++/Python等語言 介紹Go語言在國內(nèi)外的使用情況 類型和變量 ? 值和指針的詳解 ? 函數(shù)分析 ? 結(jié)構(gòu)體詳解 ? interface詳解 ? Go中的OOP ? Goroutine race condition channels分析 ? 錯誤處理 ? package和exporting設(shè)計 ? 動手實驗題:開發(fā)兩個命令行工具,一個實現(xiàn)ls的功能,一個實現(xiàn)grep的功能 |
第二課時: Go核心 |
1. interface設(shè)計詳解 ? 2. goroutine和調(diào)度器設(shè)計詳解 ? 3. channel設(shè)計詳解 ? 4.1.10/1.11新版本特性 ? 5.鎖和并發(fā)相關(guān) |
第三課時: Go 如何寫高并發(fā)網(wǎng)絡(luò)服務(wù) |
1. Go TCP編程詳解 ? 2. Go如何建立TCP鏈接 ?3. gorotuine和channel 在scoket讀寫的詳解 ?4. conn在多goroutine之間的共享 ?5. TCP鏈接關(guān)閉 ? 6. scoket屬性的詳解 ? 7. Go HTTP編程詳解 ? 8. HTTP協(xié)議詳解 ? 9. HTTP實現(xiàn)詳解 |
第四課時: Go 程序的測試和調(diào)試 |
1. Go 如何寫測試 ? 1. 單元測試 ? 2. 壓力測試 ? 3. 集成測試 ? 4. docker 測試 ? 2. Go 如何調(diào)試 ? 1. CPU profile ? 2. Mem profile ? 3. GC profile ? 4. Tracer |
第一課時: Go詳解 主要介紹Go的語法信息 ? 對比Go/PHP/JAVA/C/C++/Python等語言 介紹Go語言在國內(nèi)外的使用情況 類型和變量 ? 值和指針的詳解 ? 函數(shù)分析 ? 結(jié)構(gòu)體詳解 ? interface詳解 ? Go中的OOP ? Goroutine race condition channels分析 ? 錯誤處理 ? package和exporting設(shè)計 ? 動手實驗題:開發(fā)兩個命令行工具,一個實現(xiàn)ls的功能,一個實現(xiàn)grep的功能 |
第二課時: Go核心 1. interface設(shè)計詳解 ? 2. goroutine和調(diào)度器設(shè)計詳解 ? 3. channel設(shè)計詳解 ? 4.1.10/1.11新版本特性 ? 5.鎖和并發(fā)相關(guān) |
第三課時: Go 如何寫高并發(fā)網(wǎng)絡(luò)服務(wù) 1. Go TCP編程詳解 ? 2. Go如何建立TCP鏈接 ?3. gorotuine和channel 在scoket讀寫的詳解 ?4. conn在多goroutine之間的共享 ?5. TCP鏈接關(guān)閉 ? 6. scoket屬性的詳解 ? 7. Go HTTP編程詳解 ? 8. HTTP協(xié)議詳解 ? 9. HTTP實現(xiàn)詳解 |
第四課時: Go 程序的測試和調(diào)試 1. Go 如何寫測試 ? 1. 單元測試 ? 2. 壓力測試 ? 3. 集成測試 ? 4. docker 測試 ? 2. Go 如何調(diào)試 ? 1. CPU profile ? 2. Mem profile ? 3. GC profile ? 4. Tracer |