Time of Update: 2018-09-03
產品嘴裡的一個小項目,從立項到開發上線,隨著時間和需求的不斷激增,會越來越複雜,變成一個大項目,如果前期項目架構沒設計的不好,代碼會越來越臃腫,難以維護,後期的每次產品迭代上線都會牽一髮而動全身。項目微服務化,松耦合模組間的關係,是一個很好的選擇,隨然增加了維護成本,但是還是很值得的。 微服務化項目除了穩定性我個人還比較關心的幾個問題:
Time of Update: 2018-09-04
前言:隨著 go1.11 的發布,go 官方引入了 go module 來解決依賴管理問題,go module 被整合到原生的 go cmd 中,但是如果你的程式碼程式庫在$GOPATH中,go1.11 的 module 功能是預設不會開啟的,想要開啟也非常簡單, 通過一個環境變數即可開啟go module:export GO111MODULE=on。關於 $GOPROXY當我們使用go的時候,go預設會直接從程式碼程式庫中去下載所需的相關依賴,GOPROXY
Time of Update: 2018-09-03
**方式1**```gopackage mainimport ("fmt""net/http")func main(){//處理路由為 / 的方法http.HandleFunc("/",func(w http.ResponseWriter,r *http.Request){fmt.Fprintln(w,"Hello World",r.URL.Path)})//監聽3000連接埠http.ListenAndServe(":30
Time of Update: 2018-09-03
最近一直在研究Docker和Kubernetes,這兩者都是使用Go語言開發,為了更深入的瞭解Docker和Kubernetes,打算學習一下Go語言。為了深入細緻的學習,這裡列一個目錄,會不斷更新Golang學習筆記-環境搭建指南(本篇)Golang學習筆記-IDE選擇和安裝指南持續更新,未完待續……Go 語言支援以下系統:LinuxFreeBSDMac OS
Time of Update: 2018-09-01
標籤:aop 描述 message init 路徑載入 inject 之間 體繫結構 進階服務 【原文】
Time of Update: 2018-08-31
標籤:Fix 監視 可重新進入 https image 管理 一點 條件 fixed 【原文】https://www.toutiao.com/i6572378564534993415/
Time of Update: 2018-08-31
標籤:string 箭頭函數 項目 寫入 nes 注意 script att red 原文: https://www.cnblogs.com/ys-ys/p/5158510.html-
Time of Update: 2018-08-28
*作者註:使用 Go 語言工作了一段時間之後,我學會了如何使用無緩衝 channel 來構建 Goroutines 池,我喜歡這種方式勝於此文章中所展示的方式。話雖如此,此文章在它所描述的情境中依然有巨大價值。*我在多個場合都被問到為什麼使用工作池模式,為什麼不在需要的時候啟動所需要的 Goroutines?我的答案一直是:受限於工作的類型、你所擁有的計算資源和所處平台的限制,盲目地使用 Goroutines
Time of Update: 2018-08-27
我們可以通過Tag來增強結構體的定義,Tag會帶上一些meta資訊,在本文中我們將通過幾個例子來深入瞭解Tag的用法。結構Struct是由一組field組成,每個field包括了名字(可選)和欄位類型package mainimport "fmt"type T1 struct { f1 string}type T2 struct { T1 f2 int64 f3, f4 float64}func main() { t := T2{T1{
Time of Update: 2018-08-31
我在**main.go**檔案中建立了一個路由**CreateUser**。在同一個包下的**另一個檔案handler.go**把路由函數寫好。但是在運行程式的時候,程式報錯,說我**undefined:CreateUser**。並不知道為什麼會這樣。。。**main.go**package mainimport ("net/http")func main()
Time of Update: 2018-08-31
前面講了很多Go 語言的基礎知識,包括go環境的安裝,go語言的文法等,感興趣的朋友可以先看看之前的文章。https://www.cnblogs.com/zhangweizhong/category/1275863.html。今天GO語言中的物件導向。 GO語言中的物件導向 其實GO並不是一個純物件導向程式設計語言。它沒有提供類(class)這個關鍵字,只提供了結構體(struct)類型。java或者C#
Time of Update: 2018-08-26
Golang Gin實踐 番外 請入門 Makefile原文地址:Golang Gin實踐 番外 請入門 Makefile前言含一定複雜度的軟體工程,基本上都是先編譯 A,再依賴 B,再編譯 C...,最後才執行構建如果每次都人為編排,又或是每新來一個同事就問你項目 D 怎麼構建、重新構建需要注意什麼...等等情況,豈不是要崩潰?我們常常會在開源項目中發現 Makefile,你是否有過疑問?本章節會簡單介紹 Makefile 的使用方式,最後建議深入學習怎麼解決對於構建編排,Docker 有
Time of Update: 2018-08-30
代碼在GitHub上託管 https://github.com/xej520/xingej-thrift/tree/master/hw-thrift 環境說明windows 10Intellij IDEA thrift-0.11.0.exe服務端用java實現 用戶端用go實現 用例的作用是,用戶端將字串傳遞給伺服器,伺服器將字串轉換成大寫後,返回給用戶端
Time of Update: 2018-09-03
寫在前面的話最近在開發Go項目,發現Go語言本身存在的error並沒有像觸發panic時顯示詳細的調試資訊。對於複雜的系統而言,這會讓我們開發人員需要一定的時間才能定位到錯誤。所以我們基本Go本身的error封裝了一個可以快速定位錯誤工具包。下面讓我們來看看這個工具包是怎麼實現的。設計思想工具包提供Err和Errf兩個完善來登記錯誤,其用法分別類似於fmt.Print和fmt.Printf的使用方式,在參數的定義中添加了innerError參數來實現錯誤的傳遞,其值可為nil.對外提供Stack
Time of Update: 2018-09-03
### 寫在前面的話最近在開發Go項目,發現Go語言本身存在的`error`並沒有像觸發`panic`時顯示詳細的調試資訊。對於複雜的系統而言,這會讓我們開發人員需要一定的時間才能定位到錯誤。所以我們基本Go本身的`error`封裝了一個可以快速定位錯誤工具包。下面讓我們來看看這個工具包是怎麼實現的。### 設計思想1.
Time of Update: 2018-09-03
之前學習HTTP和TCP請求的時候經常看到一個名詞就是長串連,之前一直很好奇怎麼去實現,最近偶爾看到一篇文章寫的IM系統,想轉載學習一下。IM系統,那麼必然需要TCP長串連來維持,由於Golang本身的基礎庫和外部依賴庫非常之多,我們可以簡單引用基礎net網路程式庫,來建立TCP server。一般的TCP
Time of Update: 2018-09-02
安裝系統內容註:本文操作在MAC環境下。1.安裝go環境(go需要1.7及以上版本)mac 執行命令 brew install go 即可。遇到被牆問題,可以瀏覽器開啟https://studygolang.com/dl/golang/go1.10.3.darwin-amd64.pkg 下載,然後一步步安裝即可。配置GOPATH環境變數。依次執行以下命令:執行 cd ~執行 vi .bash_profile在 .bash_profile中插入一行自己的項目目錄位址 export GOPATH=
Time of Update: 2018-09-02
雖然曾有一些文章介紹了如何建立一個最小的Go Docker鏡像,我也曾寫過一篇文章,但是隨著Go的新的版本的發布, 以及docker本身的進化,有些技巧已經發生了變化, 本文介紹了最新的建立超小的Go鏡像的方法。一個簡單Go程式的鏡像首先讓我們建立一個很簡單的Go程式:1234567package mainimport "fmt"func main() {fmt.Println("hello world")}運行下面的命令會建立一個超小的鏡像,
Time of Update: 2018-08-29
PHP主要用於Web開發,Web之外使用PHP會很蹩腳。如何得出的這個結論?我們往往會參考大公司的技術架構,發現沒有哪個大公司將PHP用於Web之外的情境。如果你一定要在其他情境用PHP,我也會支援你,因為GitHub上很多人這樣做,但始終要記住大公司的技術架構是最好的技術指南。在Web開發的世界裡除了PHP之外還有很多程式設計語言可供挑選,主流的有Node.js、Python、Java,.NET、Golang,Ruby。其中使用最多的是PHP,特別是在中小企業、互連網創業公司。其次是Java,
Time of Update: 2018-08-29
2018年第一季度,區塊鏈相關人才的招聘需求已達到2017年同期的9.7倍,發布區塊鏈相關崗位的公司數量同比增長4.6倍。 兄弟連教育Go全棧與區塊鏈培訓課程是由清華、微軟和Google名師曆時半年時間研發出的獨一無二的體系化課程。壓縮檔package mainimport ( "fmt" "os" "io" "archive/tar" "compress/gzip")func