Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。序言此前,我看過這樣的一個提問“Yii2架構中,有必要再分離service層嗎?”,從別人的回答中,自己也收穫了答案,但我覺得還需要有個活生生的粟子,才具有更加清晰明了和強有力的說服力。如對我的實戰經曆感興趣的繼續往下看,喜歡的還可以點擊推薦和收藏。在舉粟子前,我先講講service是什嗎?有什麼作用吧?免得還有人糊塗。1、service是什嗎?在面向OO的系統裡,service就是biz
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("fmt""golang.org/x/net/websocket""log""net/http""os""time")var (dirPath stringtest bytelenFile int)func check(e error) {if e != nil { panic(e)}
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、執行流程構建一個簡單http server:package mainimport ( "log" "net/http")func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello world
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。安裝 delve官方的文檔已經很全了,參考這裡(github)安裝。Mac OSX 比較麻煩,需要搞定認證。斷點和變數列印delve 裝好之後就可以直接在命令列使用 dlv 命令了。查看可用的命令dlv -h看協助資訊可知:支援用 dlv attach 的方式調試正在啟動並執行進程,支援 dlv connect 連結到網路連接埠調試。這裡先用最簡單的 dlv debug 調試。dlv debug main.go然後會進入偵錯模式,
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。我最早接觸的Go WEB架構是beego,很強大的一個架構,也是很多人的首選,就是因為太(bu)強(gou)大(ling)了(huo),後來嘗試了Macaron(martini)。Macaron的設計是眾多架構的主流思想,路由、中介軟體、HTTP上下文,然後自己實現了一些常用的中介軟體(PS.
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Festival & Fuck, Coding, Inner depth, Sister and Others.某些文章會提到《為什麼Go語言這麼不受待見》,《真的沒必要浪費心思在 Go 語言上》,《我為什麼放棄Go語言》,《Why worse is
Time of Update: 2017-02-09
這是一個建立於
Time of Update: 2017-02-09
這是一個建立於
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近買了本書《HTTP權威指南》,看了第一章,看到書上說通過telnet類比HTTP請求,我這個學渣就發現自己沒學過電腦網路。今天翻了一下考研指定教材《電腦網路》,裡面也以訪問清華大學首頁為例詳細講了通訊過程: 瀏覽器分析連結指向頁面的URL。 瀏覽器向DNS請求解析www.tsinghua.edu.cn的IP地址。 網域名稱系統DNS解析出清華大學伺服器的IP地址為166.111.4.100。
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Tiny Go Web (TGW)是一個非常簡單的Web架構,甚至談不上架構。TGW無意取代任何架構,TGW的誕生是因為作者在使用beego時有種挫敗感,決定自己重新寫一個適合自己網站用的(私人借書網,因為網站沒有完成備案,暫時由託管在US的vps進行反向
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。剛入手golang,大概弄清楚了method在go裡的概念。以下大部分為搬運過程重寫代碼。method可以為一個type添加(聲明)一個方法,例如:type Cat struct {}func (c Cat) Hwo() {
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。注:此文是作者所在團隊約定的編碼規範,參考官方指南Effective Golang和Golang Code Review Comments進行整理,力圖與官方及社區編碼風格保持一致。gofmt大部分的格式問題可以通過gofmt解決,gofmt自動格式化代碼,保證所有的go代碼一致的格式。正常情況下,採用Sublime編寫go代碼時,外掛程式GoSublilme已經調用gofmt對代碼實現了格式化。注釋在編碼階段同步寫好變數、函數、
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、下載Sublime Text3讀者可以在官網http://www.sublimetext.com/3下載【備忘】:由於我用的作業系統是win8 64位,所以選擇Windows 64 bit連結下載二、註冊Sublime Text31、安裝完之後開啟Sublime Text會發現軟體沒有註冊,其實不註冊關係也不大,只是在後面使用時會彈框影響易用性2、開啟Sublime Text,選擇“Help > Enter
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。發現好多筆試題,都問的是庫函數。往簡單的做,有效率不太高的演算法,往複雜的做,就得看源碼了。寫一個在一個字串(n)中尋找一個子串(m)第一個位置的函數暴力字串匹配方法(Brute forceing matching)。這個寫法不難,複雜度O(n*m)。func IndexFuck(s, sep string) int {for i := 0; i < len(s); i++ {if s[i] == sep[0] {is :=
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。slice,是go中一個很重要的主題。我們不用切片來表述,因為這裡的切片特指的是數組的切片。先給slice下個定義吧: Slice expressions construct a substring or slice from a string, array, pointer to array, or slice. There are two variants: a simple form that specifies a
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。因為 雲巴 系統對高並發、低延遲的需求,我們對各個語言、平台做了很多的調研比較工作。這自然就包括致力於開發高並發應用的 Go 和 Erlang。並發Go 對高並發的支援通過 goroutine 實現。goroutine 可以理解為輕量級的 線程(thread)。同一個 Go 應用建立的 goroutine 共用地址空間。Erlang 的高並發通過輕量級 進程(process)實現,每一個進程都有獨立的狀態記錄。另外,使用
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。學習什麼語言都得從讀檔案開始,好像記得一個大神說過電腦編程就是"開啟檔案,操作,關閉檔案"。初學Golang就記一下go語言的檔案操作Read Filefunc main(){ rw,err := os.Open("") if err != nil { panic(err) } defer rw.Close()
Time of Update: 2017-02-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 註:該文作者是 Katrina Owen,原文地址是 iota: Elegant Constants in Golang有些概念有名字,並且有時候我們關注這些名字,甚至(特別)是在我們代碼中。const ( CCVisa = "Visa" CCMasterCard = "MasterCard" CCAmericanExpress =
Time of Update: 2017-02-09
這是一個建立於
Time of Update: 2017-02-09
這是一個建立於