Go macaron (馬卡龍) 庫 (一)

陈子昂發表於2020-08-12
前言

馬卡龍不是說好的和美式咖啡搭配嗎?國內開源作者寫的馬卡龍框架是從馬天尼框架那邊繼承了特性。
迴歸正題,介紹馬卡龍庫並且對 Go 語法進行一次介紹是這個文章目的。
macaron 的經典例項會讓開發者覺得好用又簡潔又靚,然後幾腳下去拔都拔不出來,這做法和 Go 語言真是一毛一樣啊。

macaron

go.mod 管理 ,版本不低於 1.6
官網地址 https://go-macaron.com/starter_guide

經典例子
//編譯可執行程式需要package main
package main
import "gopkg.in/macaron.v1"

//建立註冊執行,註冊到路由也是註冊的一種
func main(){
    //go語言的方法一般都是大寫字母開頭,macaron.Classic() 建立馬卡龍基礎例項或者叫經典例項,:=是宣告定義並且自動推導型別
    mr := macaron.Classic() 
   //註冊路由訪問域名(根路由),方法Get,func()是一個匿名函式
    mr.Get("/",func() string{    
       return "hello cat"  //基礎的處理器,返回String
    })
    mr.Run()
}

PS:這裡 go 語言的 markDown 好像有點問題啊,有二行是紅色的。
然後在外面 go run main.go 就執行了,執行後啟動發現是預設埠,mode 是開發者,嘖嘖,看來可以自定義的很多。
上面敲這段程式碼也發現打出函式回車後,後半段是...說明後面還可以新增不定長的引數/內容。

處理器是個什麼鬼,只是叫法問題,為傳入 Serives 處理邏輯的物件,這裡繼續改下上面一段的資訊

mr.Get("/".func() (int,string){
       //基礎的處理器,返回多個引數 int,String,內部是一個http.ResponseWriter的響應流裡面
       return 200,"hello cat"  //這裡就是可以暴露給前端的,當然這塊更推崇用物件,也就是Go的結構體
    })
結尾

馬卡龍橫向對比支援了 flask 的核心功能,也支援無限路由組的無限巢狀,flask 在這塊處理上比馬卡龍更麻煩。
有志學習 Go 語言的網際網路同行可以從這個來切入學習也是不錯的。
如果讀者正好是遊戲同行,可以從 tcpx 這個庫來入手 socket,掌握 session 和中介軟體套餐後,然後再學習 socket 基礎庫。
學習了 Go 後,感覺自己 Python 已經忘記得差不多了,所以不要說貓只會 Python 了。

相關文章