Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。https://micro.github.io/micro/概要Micro的目標是提供一種用於微服務的開發和管理的工具包特性FeatureDescriptionDiscoveryFind running servicesClientQuery services via RPCServerListen and serve RPC requestsPub/SubPublish and subscribe to eventsAPI
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前天同事提起了一個例子,關於 Golang 中可變參數的使用,平時使用時沒有注意這個細節,先上代碼吧。測試代碼想要實現的代碼邏輯很明了1. TestArgs 接受一個 int 參數,一個不定長的參數,並且類型為 interface{}2. nums 做為 slice,使用 ... 文法糖打散後傳入 TestArgs看上去邏輯沒問題,執行報錯# command-line-arguments./test.go:13: cannot
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。胡歌寫在前面根據第一篇理論內容,本文基於 Redis Client Protocol 實現最精簡的單機轉寄版本。不包含串連池,網路逾時,命令檢測,叢集,效能統計和服務註冊等功能。Archer該版本 Proxy 命名為 Archer, 意為弓箭手,熟悉 War3
Time of Update: 2017-02-10
這是一個建立於
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。intelliJ是java的開發利器,一個非常好用的IDE,Android
Time of Update: 2017-02-10
這是一個建立於
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。我們在項目中除了大量的使用Python外,也大量的使用了Golang構建高效基礎運行服務。在使用Golang過程中,我們發現Golang程式缺少依賴庫版本功能是一個非常令人頭大的問題:某些依賴在某個commit之後發生了API變更之後,如果不修改代碼很難相容,然而開發人員之間很有可能因為參與的時間不同,導致執行go get命令擷取的版本不同,而導致在不同電腦上出現編譯不通過問題。同時,在多個程式中,如果使用的commit版本不同,
Time of Update: 2017-02-10
這是一個建立於
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package main import ("fmt""time") func main() {//擷取時間戳記timestamp := time.Now().Unix()fmt.Println(timestamp) //格式化為字串,tm為Time類型tm := time.Unix(timestamp, 0)fmt.Println(tm.Format("2006-01-02 03:04:05
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。基礎基礎基礎基礎基礎!!!!,這是一個屢踩屢犯的坑,不只一次了...先來個例子:例1很簡單的,執行後依次列印1, 2, 3, 4, 5. 再增加匿名函數例2 在匿名函數裡列印 n 值,執行後一次列印1, 2, 3, 4, 5. 我的使用情境很簡單,廣告有很多過濾外掛程式,很多可以複用同一個struct,
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。spacex最近小夥伴們剛完成廣告系統,第二個直接服務於業務的項目。踩了一些坑,更收穫了不少知識。總結出來與大家分享,沒什麼高大尚技術,都是周邊的小技巧,加深對 go 語言的理解,適合新手,老鳥勿噴。包管理很多人都認為 go 的包管理不夠友好,深有感覺。特別是在 github 上給別人提 patch, 我先 fork 到自已目錄下面,如果原作者有引用自已路徑下面的庫,這就麻煩了。另外一個是版本管理,每個人的 gopath
Time of Update: 2017-02-10
這是一個建立於
Time of Update: 2017-02-10
這是一個建立於
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。繼承:package mainimport "fmt"type Human struct { name string age int phone string}type Student struct { Human //匿名欄位 school string}type Employee struct { Human //匿名欄位 company
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Ubuntu 14.04 上使用 Docker 建立新的 Images 環境準備Ubuntu 14.04.1 LTS 發布後,我歡快地去官網下載並建立了一個虛擬機器,但是在在執行下面命令的時候:sudo apt-get update一直會遇到下面的錯誤W: 無法下載 http://extras.ubuntu.com/ubuntu/dists/trusty/main/binary-amd64/Packages Hash
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。345唉,這是int類型嗎?看著是~它有可能是345.0,可以簡寫為345.(沒有看錯,只是把0給簡沒有了)func main() {s := 345var t int32 = 345fmt.Println(s == t)}會出現什麼呢?對了,會出現s == t (mismatched types int and int32),因為s := 345被golang編譯器預設賦予了int類型。func main() {s := 345
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。有如下函數,簡單來說就是有錯誤則直接返回,沒錯誤則執行f函數。func (t *transaction) Do(f func()) *transaction { if t.fail || t.rollback || t.finish { return t } f() return t}函數很簡單,但如何測試呢,簡單但醜陋的方法:func Test_func(t *testing.T) {
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、知名的Golang開源架構1. Beego: 一個國產的HTTP架構,我們可以用它快速開發各種應用程式。官網地址: http://beego.me2. Gogs: 一個國產的自主Git託管服務程式,我們可以用它來搭建自己的Git伺服器。官網地址:http://gogits.org3. Docker:
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。BEFORE今天發現,go的優勢除了它的輕量線程(goroutine)提供了更方便靈活的並發編程模式之外,它的I/O機制也設計的非常給力。之前,我在向其他伺服器發送json資料時,都需要先聲明一個bytes緩衝,然後通過json庫把結構體中的內容mashal成位元組流,再通過Post函數發送。代碼如下:package mainimport ( "bytes" "encoding/
Time of Update: 2017-02-10
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。變數變數聲明通過關鍵字var聲明變數,資料類型在變數名後。var a intvar b int = 10變數聲明語句可以不需要使用分號作為結束符。可以將若干個需要聲明的變數放置在一起,避免重複寫var關鍵字。var ( a int b string)初始設定變數初始設定變數時可以不用聲明資料類型,go編譯器會根據運算式右值推匯出該聲明為哪種類型。var a int = 10var a = 10可以使用 :=