<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天繼續為大家更新Go語言學習記錄的文章,介紹最近發現的一款非常優秀的框架:GoFrame。
最近發現了一款非常好用的基於go語言的web開發框架,非常適合PHP轉Go的同學使用,在很多設計思想和使用上和PHP的Laravel框架非常像。
今天就為大家簡單介紹一下GoFrame的特點
GoFrame
是一款模組化、高效能、企業級的Go
基礎開發框架。GoFrame
不是一款WEB/RPC
框架,而是一款通用性的基礎開發框架,是Golang
標準庫的一個增強擴充套件級,包含通用核心的基礎開發元件,優點是實戰化、模組化、檔案全面、模組豐富、易用性高、通用性強、面向團隊。
官方檔案詳細介紹了框架特點,我就不贅述了。
下面我以一個使用者和學習者的角度分享一下我的學習體會。
設計思想是GoFrame框架的靈魂,同時對於使用者來講,是不可或缺的內功心法。GoFrame有其獨特的設計思想,理解了GoFrame的設計思想,您就理解了GoFrame的全部。
和PHP的Laravel一樣,goframe的設計思想非常值得我們學習和借鑑。
有基礎的同學,建議可以簡單熟悉一下框架設計、操作一下快速開始,然後就重點閱讀 核心元件
尤其是資料庫ORM需要重點看一下,熟悉Laravel Eloquent的同學看起來應該比較輕鬆,很多使用和習慣是比較像的。
下面我舉個範例讓大家體會一下,從一些細節設計上我們能明顯感覺到設計者對PHP轉go開發者的友好。
物件管理相關:
Array也是切片的別名,猜測是為了迎合PHP轉go的使用習慣,PHP的array和golang的slice切片更像,因為go的陣列的固定長度的。
type( Var = gvar.Var //是一個通用的變數,類似泛型 Ctx = context.Context //context.Context的別名 ) //Map是對原生map的key value約定好了型別,起的的別名 type( Map = map[string]interface{} MapAnyAny = map[interface{}]interface{} // MapAnyAny is alias of frequently-used map type map[interface{}]interface{}. MapAnyStr = map[interface{}]string // MapAnyStr is alias of frequently-used map type map[interface{}]string. MapAnyInt = map[interface{}]int // MapAnyInt is alias of frequently-used map type map[interface{}]int. MapStrAny = map[string]interface{} // MapStrAny is alias of frequently-used map type map[string]interface{}. MapStrStr = map[string]string // MapStrStr is alias of frequently-used map type map[string]string. MapStrInt = map[string]int // MapStrInt is alias of frequently-used map type map[string]int. MapIntAny = map[int]interface{} // MapIntAny is alias of frequently-used map type map[int]interface{}. . . . ) //List是map型別的切片 type ( List = []Map ListAnyAny = []MapAnyAny // ListAnyAny is alias of frequently-used slice type []MapAnyAny. ListAnyStr = []MapAnyStr // ListAnyStr is alias of frequently-used slice type []MapAnyStr. ListAnyInt = []MapAnyInt // ListAnyInt is alias of frequently-used slice type []MapAnyInt. ListStrAny = []MapStrAny // ListStrAny is alias of frequently-used slice type []MapStrAny. ListStrStr = []MapStrStr // ListStrStr is alias of frequently-used slice type []MapStrStr. ListStrInt = []MapStrInt // ListStrInt is alias of frequently-used . . . ) //Slice就是切片的別名 type( Slice = []interface{} // Slice is alias of frequently-used slice type []interface{}. SliceAny = []interface{} // SliceAny is alias of frequently-used slice type []interface{}. SliceStr = []string // SliceStr is alias of frequently-used slice type []string. SliceInt = []int // SliceInt is alias of frequently-used slice type []int. ) //Array也是切片的別名,猜測是為了迎合PHP轉go的使用習慣,PHP的array和golang的切片更像,因為go的陣列的固定長度的。 type( Array = []interface{} // Array is alias of frequently-used slice type []interface{}. ArrayAny = []interface{} // ArrayAny is alias of frequently-used slice type []interface{}. ArrayStr = []string // ArrayStr is alias of frequently-used slice type []string. ArrayInt = []int // ArrayInt is alias of frequently-used slice type []int. )
無go語言基礎的同學,我建議先學go的基礎語法,安利一下GO語言學習專欄,然後再看goframe的框架。
因為只有搞清楚Go語言基礎後,才能更好的理解goframe的優勢和使用技巧。
就像我們做PHP的時候,一定是先學習PHP的基礎語法,然後才學TP、Laravel這類框架的。
對於有PHP基礎,只是沒有go語言基礎的同學來講,轉go還是比較輕鬆的。
可能只是不能像PHP那麼靈活,那麼隨心所欲的寫程式碼了,嘗試一下GO語言苛刻的規範化開發也未嘗不是一種享受。
複製貼上的重複工作我就不做了,更多內容建議大家檢視下方的官網。
在看檔案過程中,我們不能很明顯的知道當前檔案的版本,這個問題我已經提交給社群了,目前的閱讀建議是這樣,我們把頁面拉到最上面,點選左上角這裡進行版本切換。
以上就是適合PHP同學的GoFrame框架的使用體驗及學習建議的詳細內容,更多關於GoFrame框架學習建議的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45