Time of Update: 2018-07-01
標籤:演算法 自訂 資料結構 style mac fabri 分散式資料庫 業務 特殊 1。區塊鏈發展與現狀視頻地址:https://www.imooc.com/video/17452 
Time of Update: 2018-07-02
原文:《Choosing A Library to Embed Static Assets in Go》作者:Tim Shannon譯者按:文章介紹了 Go 嵌入靜態檔案的幾種方法,接著講自己在使用某一個庫期間遇到的麻煩,最後比較不同庫的特點。對於想要將靜態資源構建到可執行檔裡的開發人員來說,有一定參考意義。在徵得原文作者同意的前提下,我開始了翻譯工作。背景Go 中一個常被吹捧的特性是 Go 應用容易部署,原因是 Go 寫的程式是靜態編譯的。但在你運行一個 Web
Time of Update: 2018-07-02
項目地址:https://github.com/chenhg5/go...有時候我們為了更好的利用電腦資源,可以把一些耗時間長度的任務隊列化非同步執行。舉個對應簡單的生活中例子就是大多數餐廳裡面點菜都是先找地方做,看了菜單選好菜之後找服務員點菜,此時再等待菜做好送上來。這裡餐廳廚房就是電腦的底層資源,菜就是待執行的任務,而服務員就是我們的go channel。關於訊息佇列有很多好用的架構,如nsq,nats,kafka等等。但有時我們只需要輕量級的非同步任務工具,而不需要太過於"複雜
Time of Update: 2018-07-02
cond的主要作用就是擷取鎖之後,wait()方法會等待一個通知,來進行下一步鎖釋放等操作,以此控制鎖合適釋放,釋放頻率,適用於在並發環境下goroutine的等待和通知。針對Golang 1.9的sync.Cond,與Golang 1.10一樣。 原始碼位置:sync\cond.go。結構體type Cond struct { noCopy noCopy // noCopy可以嵌入到結構中,在第一次使用後不可複製,使用go vet作為檢測使用 //
Time of Update: 2018-07-02
sync.Once可以實現單例模式,確保sync.Once.Do(f func())只會被執行一次,可以初始化某個執行個體單例。針對Golang 1.9的sync.Once,與Golang 1.10一樣。 原始碼位置:sync\once.go。結構體Once結構體定義如下:type Once struct { m Mutex done uint32 // 初始值為0表示還未執行過,1表示已經執行過}Dofunc (o *Once) Do(f func()) { //
Time of Update: 2018-07-02
golang make()的第三個參數學習了一段時間golang,大概可以用golang做一些小東西了,於是回顧了一下一些基礎的東西。golang分配記憶體有一個make函數,該函數第一個參數是類型,第二個參數是分配的空間,第三個參數是預留分配空間,前兩個參數都很好理解,但我對第三個參數卻一臉懵逼,例如a:=make([]int, 5, 10),
Time of Update: 2018-07-02
針對Golang 1.9的sync.WaitGroup進行分析,與Golang 1.10基本一樣除了將panic改為了throw之外其他的都一樣。原始碼位置:sync\waitgroup.go。 結構體type WaitGroup struct { noCopy noCopy // noCopy可以嵌入到結構中,在第一次使用後不可複製,使用go vet作為檢測使用 // 位值:高32位是計數器,低32位是goroution等待計數。 // 64位的原子操作需要64位的對齊,
Time of Update: 2018-07-02
最近使用consul作為項目的服務註冊與服務發現的基礎功能。在塔建叢集使用中遇到一些坑,下面一個個的記錄下來。consul叢集多nodeconsul叢集的node也就是我們所說的consul執行個體。叢集由多個node組成,為了叢集的可用性,需要超過半數的node啟用server。如5個node中建議3個啟用server模式,3個node組成的叢集就2個node啟用server模式。看到這裡的時候你一定覺得沒有什麼問題呀,但是consul坑就是多。加入你的叢集組成如下:Node
Time of Update: 2018-07-02
寫項目一直需要進行序列化,聽到了,也看到了很多同學老師對各個golang的json庫進行測評。那本人為什麼還要繼續進行這一次測評呢?因為實踐過的知識最有說服力,也是屬於自己的,我也希望看到本博文的同學老師可以修改和執行測評的代碼執行一遍,我相信會有不一定的體會。本次測評我選擇了類庫有:
Time of Update: 2018-07-02
如果你升級使用了較為新版xorm(如v0.6.3)和go-sql-driver(如v1.3)的go類庫,那麼你就可能會遇到時區問題。 如time.Parse("2006-01-02 15:04:05" ,"2018-01-15 12:11:12") // 2018-01-15T12:11:12+00:00寫入是資料庫時候就會被改變為2018-01-15T20:11:12+00:00。
Time of Update: 2018-07-02
golang中的nil,很多人都誤以為與Java、PHP等程式設計語言中的null一樣。但是實際上Golang的niu複雜得多了,如果不信,那我們繼續往下閱讀。nil 為預聲明的標示符,定義在builtin/builtin.go,// nil is a predeclared identifier representing the zero value for a// pointer, channel, func, interface, map, or slice type.// Type mu
Time of Update: 2018-07-02
12.是否可以編譯通過?如果通過,輸出什嗎?func main() {i := GetValue()switch i.(type) {case int:println("int")case string:println("string")case interface{}:println("interface")default:println("unknown")}}func GetValue() int {return 1}解析考點
Time of Update: 2018-07-02
8月7日@黃同學找我問:“資料存到redis是gzdeflate壓縮過的資料,golang從redis取出來,解壓縮失敗”。很多從PHP轉Golang的業務經常會遇到,所以寫下這篇博文,希望可以協助更多人。想要使用golang解碼php的編碼,那麼就應該需要知道gzdeflate函數的演算法是什麼,先到gzdeflate文檔,查看了一下發現:gzdeflate使用的是純粹的DEFLATE格式。這就與golang的compress/flate包一致了。有了瞭解就可以看著golang文檔實現代碼了。
Time of Update: 2018-07-02
最近在很多地方看到了golang的面試題,看到了很多人對Golang的面試題心存恐懼,也是為了複習基礎,我把解題的過程總結下來。面試題1. 寫出下面代碼輸出內容。package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fmt.Println("列印前") }() defer func() { fmt.Println(
Time of Update: 2018-07-02
最近開發項目時候發現一個結構體的Json轉換的時間格式問題。即這種1993-01-01T20:08:23.000000028+08:00 這種表示UTC方法。從我們習慣來說,更喜歡希望的是1993-01-01 20:08:23這種格式。重新複現代碼如下:package mainimport ( "time" "encoding/json")type Student struct { Name string `json:"name&
Time of Update: 2018-07-02
**本文系第一篇Golang語言學習教程**# What is Golang?*************個人認為新手對真正的特性沒有理解,特點等等在真正學會後才能夠真正瞭解。 所以以下概念性的東西只需大致瞭解。*Go語言是Google推出的一種全新的程式設計語言,**它能讓構造簡單、可靠且高效的軟體變得容易。**於2009年11月開源,在2012年早些時候發布了Go 1穩定版本。現在Go的開發已經是完全開放的,並且擁有一個活躍的社區。***********## Go語言特色+
Time of Update: 2018-07-02
1架構師是什嗎?要想往架構師的方向發展首先要知道架構師是什嗎?架構師是一個既需要掌控整體又需要洞悉局部瓶頸並依據具體的業務情境給出解決方案的團隊領導型人物。一個架構師得需要足夠的想像力,能把各種目標需求進行不同維度擴充,為勘探提供更為全面的需求清單。<figure style="margin: 1em 0px; color: rgb(26, 26, 26); font-family: -apple-system, system-ui, "Helvetica Neue"
Time of Update: 2018-07-01
**本文解釋了協變、逆變和不變性是什麼,以及對 Go 類型系統的影響。特別是解釋了為什麼在 slices 中不可能有可變性。**一個 Go 初學者經常問的問題是“為什麼我不能把 `[]int` 類型變數傳遞給函數 `func ([]interface{ })`”?在這篇文章中,我想探討這個問題及其對 Go
Time of Update: 2018-07-01
1.先選架構,感覺部落格類的應用還是適合beego這種成熟的mvc架構。或者可以完全的進行前後端分離,前端使用vue這種架構,後端使用gin這種restful架構結論:beego2.前端選型?富文字編輯器or md3.資料庫選型,簡單來說還是mysql就可以了,畢竟量級不大,如果量級擴大就把文章資訊或者其他資訊存到MongoDB中4.總體的庫表設計
Time of Update: 2018-07-01
2018年6月30日基礎命令go build 用於編譯源碼檔案、程式碼封裝、依賴包可執行檔路徑為 $GOPATH/bingo run 編譯並運行go源碼檔案go get 動態擷取遠程程式碼封裝系統關鍵字或保留字1,保留關鍵字breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvar2,