Time of Update: 2017-02-09
標籤:建議 訪問 之間 imp pascal 單詞 class write 異常 python源碼和其他一些書籍,命名各種個性,沒有一個比較統一的命名規範。於是總結了一些,供參考。模組名:模組應
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。簡介作為一種現代語言,go語言實現了對並發的原生支援。上幾期文章中,我們對goroutine 和 channel進行了詳細的講解。但是要實現對 channel 的控制,從語言層面上來說,select 語句是必不可少的部分。本文中,我們就 select 語句的行為和使用方法進行深入討論。閱讀建議本文中的內容是 Go語言並行存取模型的一篇,但是與上幾期關係不是特別密切,可以獨立閱讀。本文的內容來源自於 go language
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。譯註: 這篇文章的內容非常基礎,也非常容易理解。原文地址,感覺是最能清晰的講述了net/http包的用法的一篇,故翻譯一下共用之。一切的基礎:ServeMux 和 HandlerGo 語言中處理 HTTP 要求主要跟兩個東西相關:ServeMux 和 Handler。ServrMux 本質上是一個 HTTP 要求路由器(或者叫多工器,Multiplexor)。它把收到的請求與一組預先定義的 URL
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang 支援 struct 也支援 struct 的指標。一個常見的困惑是既然struct 指標存在了,為什麼不乾脆只有struct的指標呢?兩個原因:struct不可空,而struct指標可以為nil[]my_struct的記憶體是連續的,而[]*my_struct只有指標是連續存放的,而實際的內容則需要跟隨指標去讀取同時struct應該也有助於escape
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。原文連結:http://targetliu.com/golang-http-router/還是在繼續學習Go的路上,曾經在使用PHP的時候吃過過度依賴架構的虧。現在學習Go的時候決定先打好基礎,從標準庫學起走。源碼分析我們知道最簡單的建立http伺服器代碼基本上都是這樣的:http.HandleFunc('/', func(w http.ResponseWriter, r *http.Request){
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。原文連結:http://targetliu.com/vscode-can-not-go-to-def/之前研究GOLANG時一直用LiteIDE,不得不說,LiteIDE的確不錯,但是總感覺缺乏美感,是一款很中規中矩的編輯器。網上看到大家對VSCODE評價不錯,嘗試後發現的確不錯,布局簡潔、外掛程式化、支援中文,通過VSCODE GO擴充能夠很舒服的寫GO的代碼。問題描述不過在實際使用過程中發現 net
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。之前一直在用qiniu的儲存服務,產生圖片的縮圖,模糊圖,視頻的webp,現在需要把儲存移到s3上,那麼這些圖片,視頻處理就要自己動手寫了,本文梳理一下大致的思路。分析需求先看一下qiniu的介面是如何處理圖片的,例如先截取視頻第一秒的圖片,再把圖片縮減,最後儲存到一個新的key,命令可以這麼寫 vframe/jpg/offset/1|imageMogr2/thumbnail/400x|saveas/xxx,
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。open-falcon-hbs標籤(空格分隔): go falcon主要功能處理agent心跳請求,填充host表ip白名單下發所有agent下發執行外掛程式資訊下發監控連接埠、進程緩衝監控策略模組結構記憶體資料Map結構HostMap: (hostname, hostId int)HostGroupsMap: (hostId, groupsId []int)GroupPlugins: (groupId,
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。先看這段代碼,結果是[0 2 3],很多人都能答對。func modify(s []int) { s[0] = 0}func main() { s := []int{1, 2, 3} modify(s) fmt.Println(s)}然後稍微改動一下,再猜一下結果func pop(s []int) { s = s[:len(s)-1]}func main() { s := []int{1, 2,
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。簡介在 Go http包的Server中,每一個請求在都有一個對應的 goroutine 去處理。請求處理函數通常會啟動額外的 goroutine 用來訪問後端服務,比如資料庫和RPC服務。用來處理一個請求的 goroutine 通常需要訪問一些與請求特定的資料,比如終端使用者的身份認證資訊、驗證相關的token、請求的截止時間。 當一個請求被取消或逾時時,所有用來處理該請求的 goroutine
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。簡介Go語言的並發原語允許開發人員以類似於 Unix Pipe 的方式構建資料流水線 (data pipelines),資料流水線能夠高效地利用 I/O和多核 CPU 的優勢。本文要講的就是一些使用流水線的一些例子,流水線的錯誤處理也是本文的重點。閱讀建議本文是"Go語言並行存取模型:像Unix Pipe那樣使用channel"一文的下半部分,但重點在於實踐。如果你對 channel 已經比較熟悉,則可以獨立閱讀。
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。之前看到 lantern
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在C語言筆試的時候,比較喜歡考這個東西,如何將一個char數組轉成int類型。當年看過,不過早就忘記了。後來看到這種東西binary.BigEndian.Uint32(a),直接瞎了。後來去看文檔,看了半天也沒搞明白。在這裡直接說一下,源碼。下面這個是uint8,也就是byte數組,大小為4,轉換成int32的代碼。package mainimport "fmt"import
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。三個月沒在公司,回來後發現公司內部已經用上了facebook開源的Apache Thrift。大概看了一下介紹,傳統介面編寫是使用json或者xml作為資訊格式進行傳輸。一般Web Service裡面,SOAP這種,使用的就是xml(不過我從來沒用過。。);而輕量級網路服務REST,則用的是json作為傳輸媒介。json相較於xml,傳輸的內容變少了許多,傳輸更加便捷。這兩種都是基於HTTP的傳輸方式。而Apache
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近要做Apache Thrift相關的項目。大概看了一下,覺得不難。Thrift目前已經至此和Go語言了。照著官方提供的一個例子在學。周五搞了一上午,終於編譯通過了。下午去讀例子源碼,發現一個從來沒見過的包——flag。不管是C開發還是Java,都接觸過命令列開發。像大Java的main函數public static void main(String
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。公司有個需求,就是能夠對列表去重。本屌原本想直接用for迴圈實現,後來去查了查Java的實現方式,大開眼界。Set,是指數學裡的集合。集合當中不能有重複的元素。判斷是否有重複,可以使用雜湊的方法。Java容器當中有基於雜湊實現的HashSet。把元素都放入HashSet當中,如果有重複,則會插入失敗。這樣就能判斷出來是否重複了。而Golang並沒有這種進階的容器。只是找了一個大神實現的,稍微改了一下,能夠支援字串檢測。
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天是第二次跳進這個坑裡面。我要做的介面有一個需求,就是根據設定好的開始時間和結束時間過濾掉未開始和到期的內容。我用xorm作為ORM引擎進行資料庫開發。直接一條解決了問題。當時還大概測了一下,沒有任何問題。Where("displayorder<>0 AND effectivetime< ? AND expirationtime> ?", time.Now(),
Time of Update: 2017-02-09
這是一個建立於
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。#快速開始###下載安裝go get github.com/mnhkahn/BaiduYunPush###建立檔案pushtest.gopackage mainimport ( "fmt" "github.com/mnhkahn/BaiduYunPush")var apikey = "**************************"var seckey = "
Time of Update: 2017-02-09
這是一個建立於