成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP轉Go優選的框架:GoFrame

開發 前端
GoFrame是一款模塊化、高性能、企業級的Go基礎開發框架。GoFrame不是一款WEB/RPC框架,而是一款通用性的基礎開發框架,是Golang標準庫的一個增強擴展級,包含通用核心的基礎開發組件,優點是實戰化、模塊化、文檔全面、模塊豐富、易用性高、通用性強、面向團隊。

最近發現了一款非常好用的基于go語言的web開發框架,非常適合PHP轉Go的同學使用,在很多設計思想和使用上和PHP的Laravel框架非常像。

今天就為大家簡單介紹一下GoFrame的特點:

官方介紹

GoFrame是一款模塊化、高性能、企業級的Go基礎開發框架。GoFrame不是一款WEB/RPC框架,而是一款通用性的基礎開發框架,是Golang標準庫的一個增強擴展級,包含通用核心的基礎開發組件,優點是實戰化、模塊化、文檔全面、模塊豐富、易用性高、通用性強、面向團隊。

我的使用體驗

官方文檔詳細介紹了框架特點,我就不贅述了。

下面我以一個使用者和學習者的角度分享一下我的學習體會。

設計思想

設計思想是GoFrame框架的靈魂,同時對于使用者來講,是不可或缺的內功心法。GoFrame有其獨特的設計思想,理解了GoFrame的設計思想,您就理解了GoFrame的全部。

和PHP的Laravel一樣,goframe的設計思想非常值得我們學習和借鑒。

學習建議

有基礎的同學

有基礎的同學,建議可以簡單熟悉一下框架設計、操作一下快速開始,然后就重點閱讀 核心組件[1]

尤其是數據庫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語言學習專欄,好好學習一下Go基礎,然后再看Goframe的框架。

因為只有搞清楚Go語言基礎后,才能更好理解GoFrame的優勢和使用技巧。

就像我們做PHP的時候,一定是先學習PHP的基礎語法,然后才學TP、Laravel這類框架的。

對于有PHP基礎,只是沒有Go語言基礎的同學來講,轉Go還是比較輕松的。

可能只是不能像PHP那么靈活,那么隨心所欲的寫代碼了,嘗試一下GO語言苛刻的規范化開發也未嘗不是一種享受。

官網地址

復制粘貼的重復工作我就不做了,更多內容建議大家查看下方的官網。

目前最新的2.0版本[2]

小坑

在看文檔過程中,我們不能很明顯的知道當前文檔的版本,這個問題我已經提交給社區了,目前的閱讀建議是這樣,我們把頁面拉到最上面,點擊左上角這里進行版本切換。

圖片

相關資料

[1]核心組件: https://goframe.org/pages/viewpage.action?pageId=1114409

[2]目前最新的2.0版本: https://goframe.org/pages/viewpage.action?pageId=1114119

本文轉載自微信公眾號「 程序員升級打怪之旅」,作者「王中陽Go」,可以通過以下二維碼關注。

轉載本文請聯系「 程序員升級打怪之旅」公眾號。

責任編輯:武曉燕 來源: 程序員升職加薪之旅
相關推薦

2023-02-03 09:52:10

開發者框架GoFrame

2022-12-12 09:42:04

PHPGo框架

2022-10-26 10:15:53

GoFramePHP數組

2023-01-30 09:09:51

GoFramePHP數組

2022-11-03 09:28:20

GoFrameGomap

2024-08-01 10:17:27

2011-07-05 17:45:07

PHP框架

2023-02-24 07:48:20

PHPGo服務

2023-07-17 18:47:52

2024-10-24 08:00:00

Web開發編程語言框架

2022-11-29 10:42:46

GoFrame技巧腳手架

2025-01-22 17:15:00

2022-10-27 11:23:26

GoFrame共享變量

2009-06-25 14:51:15

開源PHP框架

2009-02-02 09:08:38

MVC框架控制器CakePHP

2016-10-28 17:39:47

phpgolangcoroutine

2009-12-09 09:57:05

ibmdwJavaPHP

2011-07-05 17:29:56

2009-12-09 13:41:50

PHP Zend框架

2022-10-28 10:45:22

Go協程GoFrame
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 涩涩视频网站在线观看 | 国产视频中文字幕在线观看 | 欧美一二三 | h片在线观看免费 | 韩国av电影网 | 国产乱人伦 | 久久精品小视频 | 国产十日韩十欧美 | 欧美天堂一区 | 日韩av一区二区在线观看 | 理论片午午伦夜理片影院 | 免费在线成人 | 国产精品久久国产愉拍 | 91精品国产91久久久久久 | 1204国产成人精品视频 | 国产成人免费视频网站高清观看视频 | 亚洲在线免费观看 | 伊人久久免费 | 久久69精品久久久久久久电影好 | 日韩视频在线播放 | 国产精品美女久久久久aⅴ国产馆 | 中文一区| 91视频正在播放 | 免费在线观看一区二区 | av综合站| www国产成人免费观看视频,深夜成人网 | 欧美一级二级三级视频 | 国产精品成人久久久久 | 国产美女视频一区 | 欧美精品一区二区三区蜜桃视频 | 久久精品国产一区二区电影 | 午夜视频免费网站 | 日韩在线视频一区二区三区 | 久久国产精品久久久久 | 国产男女视频 | 一区二区三区视频 | av在线播放一区二区 | 狠狠狠干 | 中文字幕视频在线 | 亚洲精品久久久9婷婷中文字幕 | 国产精品一区在线观看 |