原创 Go 基礎 Map
Go Map 定義 map底層實現的是是一個hashmap,data會被存儲到一個bucket數組裏,每個bucket最多存8個KV鍵值對。 宣告及創建 var m1 map[string]string // ==> nil
原创 Go基礎 Array
Go Array 數組 type Array struct { Elem *Type // 元素類型 Bound int64 // 元素數量 } 定義方式 Go數組長度固定 var <數組名稱
原创 Go基礎 Slice
Go Slice 切片 定義 Go的slice不單單是切片動作,同時也是一種**數據結構**。Go中的slice依賴於array,它的底層就是數組。 Slice的類型規範是[] T,Slice類型沒有指定的長度 Slice實現
原创 Go基礎-循環語句-For
Go 循環語句 For --- 基礎使用 for i := 0 ; i < 100 ; i++ { fmt.Println(i) } · go語言的for,條件不需要括號。 · 可以省略初始條件,結束條件,遞增表達式。 · fo
原创 適配器模式(adapter_pattern)
適配器模式(Adapter Pattern) 適配器模式將一個類的接口,轉換成客戶期望的另一個接口。適配器讓原本接口不兼容的類可以合作無間。 看個例子 還記得策略模式裏的鴨子接口嗎?假設這些鴨子類是屬於農場的,農場通過Quac
原创 Beego源碼解析之App(HTTP請求處理)
Beego源碼解析之App http server處理請求和返回repsonse的簡單流程 server端:http server啓動後,根據配置的IP建立Listener,監聽請求; client端:發送請求; 監聽到客戶
原创 Beego源碼解析Router
Beego源碼解析之Router 初始化控制器 func NewControllerRegister() *ControllerRegister { cr := &ControllerRegister{ routers:
原创 Beego源碼解析之Context-Output
Beego源碼解析之Context-Output BeegoOutput 初始化結構體方法 寫入response body的方法:寫入數據類型可以爲[]byte,JSON,JSONP,XML,YAML。 一個根據header中
原创 Go 類型斷言 ( type assertion )
Go 類型斷言 ( type assertion ) Go裏的所有類型都實現了空接口interface{},所以通常將它作爲一個傳參變量或者結構體的字段,以實現對類型的抽象。我們知道,Go的interface變量包含兩個東西,一
原创 簡易工廠模式(Easy Factory Pattern)
簡易工廠模式(Easy Factory Pattern) 簡易工廠模式提供一個創建對象實例的功能,而無需關心其具體實現。被創建實例的類型可以是接口,抽象類,也可以是具體的類。 看個例子 type Api interface {
原创 命令模式(command_pattern)
命令模式(Command Pattern) 命令模式將一個請求封裝爲一個對象,從而是你可用不同的請求對客戶進行參數化,對請求排隊或記錄請求日誌以及支持可撤銷的操作。 看個例子 一個場景:餐廳點餐,出餐 1)點餐:一個芝士漢堡,
原创 kubernetes_PV_PVC
Kubernetes PV & PVC 概念 PV: Persistent Volume,持久化存儲數據卷,Pod想要使用的持久化存儲的屬性,比如存儲的大小、讀寫權限等 PVC: Persistent Volume Claim,
原创 kubernetes_network
Kubernetes Network 前言 本篇文檔主要介紹kubernetes網絡模型實現原理。 首先從docker網絡模型入手,介紹同宿主機不同容器如何互通(網橋),接着分析不同宿主機的容器是如何通信的(跨主通信
原创 Linux_I/O模型
I/O模型(I/O Models) 阻塞式I/O(blocking I/O) 非阻塞式I/O(nonblocking I/O) I/O多路複用(I/O multiplexing) 信號驅動I/O(signal driven I
原创 kubernetes_label&selector
Kubernetes Label & Label Selector Label 概念 Label是Kubernetes的核心概念。 Labels其實就一對 key/value ,被關聯到對象上,標籤的使用我們傾向於能夠標示對象的