golang學習資料[Basic]

http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/index.htmlhtml

基礎語法

《Go By Example》
《GO語言聖經》git

  • 第一章:入門
    • Helloworld
    • 命令行參數
    • 查找重複的行
    • GIF動畫
    • 獲取URL
    • 併發獲取多個URL
    • Web服務
  • 第二章:程序結構
    • 命名
    • 聲明
    • 變量
    • 賦值
    • 類型
    • 包和文件
    • 做用域
  • 第三章:基礎數據類型
    • 整數
    • 浮點數
    • 複數
    • 布爾型
    • 字符串
    • 常量
  • 第四章:複合數據類型
    • 數組
    • Slice(切片)
    • Map
    • 結構體
    • JSON
    • 文本和HTML
  • 第五章:函數
    • 函數聲明
    • 遞歸
    • 多返回值
    • 錯誤
    • 函數值
    • 匿名函數
    • 可變參數
    • Deferred函數
    • Panic異常
    • Recover捕獲異常
  • 第六章:方法
    • 方法聲明
    • 基於指針對象的方法
    • 經過嵌入結構提來擴展類型
    • 方法值和方法表達式
    • 示例:Bit數組
    • 封裝
  • 第七章:接口
    • 接口約定
    • 接口類型
    • 實現接口的條件
    • flaq.Value接口
    • 接口值
    • sort.interface接口
    • http.Handler接口
    • error接口
    • 示例:表達式求值
    • 類型斷言
    • 基於類型斷言區別錯誤類型
    • 經過類型斷言詢問行爲
    • 類型開關
    • 示例:基於標記的XML解碼
  • 第八章:Goroutines和Channels
    • Goroutines
    • 示例:併發的Clock服務
    • 示例:示例: 併發的Echo服務
    • Channels
    • 併發的循環
    • 示例: 併發的Web爬蟲
    • 基於select的多路複用
    • 示例: 併發的字典遍歷
    • 併發的退出
    • 示例:聊天服務
  • 第九章:基於共享變量的併發
    • 競爭條件
    • sync.Mutex互斥鎖
    • sync.RWMutex讀寫鎖
    • 內存同步
    • sync.Once初始化
    • 競爭條件檢測
    • 示例: 併發的非阻塞緩存
    • Goroutines和線程
  • 第十章:包和工具
    • 包簡介
    • 導入路徑
    • 包聲明
    • 導入聲明
    • 包的匿名導入
    • 包和命名
    • 工具
  • 第十章:測試
    • go test
    • 測試函數
    • 測試覆蓋率
    • 基準測試
    • 剖析
    • 示例函數
  • 第十二章:反射
    • 爲什麼須要反射
    • reflect.Type和reflect.Value
    • Display遞歸打印
    • 示例: 編碼S表達式
    • 經過reflect.Value修改值
    • 獲取結構體字段標識
    • 顯示一個類型的方法集
    • 幾點忠告
  • 第十三章:底層編程
    • unsafe.Sizeof, Alignof 和 Offsetof
    • unsafe.Pointer
    • 示例: 深度相等判斷
    • 經過cgo調用C代碼
    • 幾點忠告

網絡編程

《Nettwork Programming》golang

  • 體系結構
    • 協議層
    • 網絡
    • 網關
    • 數據包
    • 鏈接模型
    • 通訊模型
    • 分佈式通訊模型
    • C/S系統
    • C/S應用
    • 分佈式服務端
    • 通訊Flow
    • 分佈式組件
    • 中間件模型
    • 持久處理
    • 失敗節點
    • Acceptance Factors
    • 透明性
    • 分佈式計算的八個誤區
  • Go語言概覽
    • 類型
    • 多線程
    • 類型轉換
    • 聲明
    • GOPATH
    • 運行Go程序
    • 標準庫
    • 錯誤值
  • 第三章:Socket級別編程
    • TCP/IP棧
    • 互聯網地址
    • IP地址類型
    • 服務
    • TCP Socket
    • 控制TCP鏈接
    • UDP數據報
    • 監聽多個Socket的服務
    • Conn, PacketConn, 和Listener 類型
    • 原始Socket和IPConn類型
  • 第四章:數據序列化
    • 結構化數據
    • 雙方協定
    • 自描述數據
    • ASN.1
    • JSON
    • Gob包
    • 將二進制數據編碼成字符串
    • Protocol Buffers
  • 第五章:應用級別協議
    • 協議設計
    • 你爲何應該擔心?
    • 版本控制
    • 消息格式
    • 數據格式
    • 一個簡單的樣例
    • 狀態信息
  • 第六章:管理字符集和編碼
    • 定義
    • ASCII
    • ISO 8859
    • Unicode
    • UTF-8,Go,和Runes
    • UTF-16和GO
    • Unicode Cotchas
    • ISO 8859 和 Go
    • 其餘字符集和Go
  • 第七章:安全
    • ISO安全體系
    • 數據完整
    • 對稱密鑰加密
    • 公鑰加密
    • X.509驗證
  • 第八章:HTTP
    • URLs和資源
    • 簡單用戶代理(User Agent)
    • 配置HTTP請求
    • Client對象
    • 代理處理(proxy)
    • 經過Client進行HTTPS鏈接
    • 服務器
    • HTTPS
  • 第九章:模板
    • 插入對象值
    • 管道
    • 定義函數
    • 變量
    • 條件語句
    • HTML/Template包
  • 第十章:一個完整的Web服務器
    • 瀏覽網站的流程圖
    • 瀏覽文件
    • 基礎服務器
    • listFlashCards函數
    • manageFlashCards函數
    • 中國字典
    • Flashcards集合
    • 解決聲調
    • ListWords函數
    • showFlashCards函數
    • 在瀏覽器上的展示
    • 運行這個服務器
  • 第十一章:HTML
    • Go語言的HTML/Template包
    • Tokenizing HTML
    • XHTML/HTML
    • JSON
  • 第十二章:XML
    • 解析XML
    • Unmarshalling XML
    • Marshalling XML
    • XHTML
    • HTML
  • 第十三章:
    • 遠程進程調用
    • Go語言的RPC
    • JSON
  • 第十四章:REST
    • URIs和資源
    • 表現
    • REST 動詞
    • 無狀態
    • 應用狀態引擎的超媒體(HATEOAS)
    • 連接表示
    • Transactions with REST
    • The Richardson Maturity Model
    • Flashcards Revisited
    • The Demultiplexer (Demuxer)
    • Content Negotiation
    • Handling Other URLs
    • The Complete Server
    • Client
    • 使用REST仍是RPC
  • 第十五章:WebSocket
    • websocket服務器
    • The Go Sub-Repository Package
    • The Gorilla Package

語言技巧

《Go in Practice》web

  • 第一部分:基礎
    • 第一章:走進Go
      • Go是什麼
      • Go中值得注意的地方
        • 多返回值
        • 現代標準庫
        • Concurrency with goroutines and channels
        • Go工具鏈:不單單是一個編程語言
      • 衆多語言中的Go
        • C和Go
        • Java和Go
        • Python、PHP和Go
        • Javascript、Node.js和Go
      • 開始運行Go
      • 你好,Go
    • 第二章:基礎
      • 命令行程序
      • 處理配置
      • 現實世界的Web服務
    • 第三章:Go中的Concurrency
      • 理解Go的Concurrency模型
      • 使用goroutines
      • 使用channels
  • 第二部分:多彩的應用
    • 第四章:處理error和panic
      • Error處理
      • panic系統
    • 第五章:調試和測試
      • 定位bug
      • 日誌
      • 訪問棧追蹤(stack trace)
      • 測試
      • 性能測試
  • 第三部分:應用接口
    • 第六章:HTML和Email模板
      • HTML模板
      • 爲Email使用模板
    • 第七章:服務和接收資源和表單
      • 提供靜態內容服務
      • 處理表單請求
    • 第八章:Web服務
      • REST APIs
      • 傳遞和處理HTTP error
      • 解析和映射JSON
      • API版本控制
  • 第四部分:應用雲端部署
    • 第九章:使用雲服務
      • 雲集算是什麼
      • 管理雲服務
      • 雲服務器上運行你的程序
    • 第十章:雲服務之間的通訊
      • 微服務和高可用
      • 服務間通訊
    • 第十一章:反射和代碼生成
      • 反射的三個特徵
      • Structs、tags、和annotations
      • 經過Go代碼生成Go代碼

Web編程

https://www.gitbook.com/book/wizardforcel/build-web-application-with-golang/details
《Go Web Programming》數據庫

  • 第一部分:Go語言和Web應用
    • 第一章:Go語言和Web應用
      • 使用Go開發Web應用
      • Web應用是怎樣工做
      • HTTP簡介
      • Web應用的出現
      • HTTP請求(request)
      • HTTP響應(response)
      • URI
      • HTTP/2簡介
      • 一個Web'應用的組成部分
      • 你好,Go
    • 第二章:Go實現ChitChat
      • 咱們來聊天吧
      • 應用設計
      • 數據模型
      • 接收和處理請求
      • 經過模板生成HTML響應
      • 安裝PostgreSQL
      • 數據庫接口
      • 啓動服務器
      • 組合封裝起來
  • 第二部分:基礎Web應用
    • 第三章:handling請求
      • Go的net/http庫
      • Go服務
      • Handlers和handler函數
      • 使用HTTP/2
    • 第四章:processing請求
      • 請求和響應
      • HTML表單和Go
      • ResponseWriter
      • Cookies
    • 第五章:展示內容
      • 模板和模板引擎
      • Go語言模板引擎
      • 動做
      • 參數、變量和管道
      • 函數
      • 上下文語義
      • 嵌套模板
      • 使用block動做來定義模板
    • 第六章:存儲數據
      • 內存存儲
      • 文件存儲
      • Go和SQL
      • Go和SQL 關係
      • Go關係映射器
  • 第三部分:現實世界
    • 第七章:Go Web服務
      • web服務簡介
      • 基於SOAP的Web服務
      • 基於REST的Web服務
      • 使用Go解析和建立XML
      • 使用Go解析和建立JSON
      • 建立Go Web服務
    • 第八章:測試 你的應用
      • Go和測試
      • Go單元測試
      • Go HTTP測試
      • 測試重複和依賴注入
      • 第三方Go測試庫
    • 第九章:使用Go的concurrency
      • concurrency不是並行
      • Goroutines
      • Channels
      • Web應用中使用Concurrency
    • 第十章:部署Go應用
      • 部署到服務器
      • 部署到Heroku
      • 部署到Google APP Engine
      • 部署到Docker
      • 不一樣部署方法的比較

選:分佈式系統

MIT分佈式系統課程編程

資源參考

相關文章
相關標籤/搜索