国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Go新項(xiàng)目-為何選Gin框架?(0)

這篇具有很好參考價(jià)值的文章主要介紹了Go新項(xiàng)目-為何選Gin框架?(0)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Go新項(xiàng)目-為何選Gin框架?(0),Go,golang,gin,開(kāi)發(fā)語(yǔ)言

先說(shuō)結(jié)論:我們選型Gin框架

早在大概在2019年下旬,由于內(nèi)部一個(gè)多線程上傳的需求,考慮到Go協(xié)程的優(yōu)勢(shì);
內(nèi)部采用Gin框架編寫(xiě)了內(nèi)部的數(shù)據(jù)上傳平臺(tái)BAP,采用Gin+Vue開(kāi)發(fā),但前期沒(méi)考慮到工程化思維,導(dǎo)致代碼后期維護(hù)程度變得很復(fù)雜,硬編碼內(nèi)容過(guò)多,重復(fù)內(nèi)容過(guò)多;
項(xiàng)目說(shuō)明:其中一半采用Gin作為Web頁(yè)面API,一半做了腳本獨(dú)立運(yùn)行。
此次鑒于新項(xiàng)目的開(kāi)發(fā),準(zhǔn)備將代碼工程化思維重構(gòu)。

首先考慮到業(yè)務(wù)的增長(zhǎng),以后需要將公司項(xiàng)目朝著自動(dòng)化運(yùn)維、微服務(wù)、集群、分布式項(xiàng)目的方向發(fā)展,云原生的需求,底層部署會(huì)向Docker+Kubernetes方向靠攏

目前在行的PHP為主的項(xiàng)目就顯得不那么友好(業(yè)務(wù)代碼繁雜,開(kāi)發(fā)環(huán)境依賴重,資源消耗占用大等),并且其中還嵌套了Python腳本。
這催生了我們選擇go語(yǔ)言重構(gòu)及開(kāi)發(fā)新項(xiàng)目的打算:

go語(yǔ)言的優(yōu)勢(shì)如下:

  • Go天生的自帶并發(fā)調(diào)度,如協(xié)程和通道,且協(xié)程內(nèi)存占用少,一個(gè)Goroutine??臻g最小2K
  • Go自帶的格式統(tǒng)一,gofmt工具
  • Go語(yǔ)法的簡(jiǎn)潔,可讀性強(qiáng),嚴(yán)格語(yǔ)言規(guī)范
  • Go作為靜態(tài)語(yǔ)言,編譯效率高,性能相對(duì)高
  • Go跨平臺(tái)的編譯使用,跟操作shell命令一樣的調(diào)用,部署方便,目前很多腳本都是這么來(lái)做的。
  • 豐富的內(nèi)置類型,內(nèi)置強(qiáng)大的工具
  • 內(nèi)置runtime,自動(dòng)垃圾回收機(jī)制

由于我們很多項(xiàng)目都是基于BS架構(gòu)的模式,我們也不希望過(guò)重的框架,開(kāi)發(fā)高性能的API服務(wù)以及后續(xù)的微服務(wù),進(jìn)行前后端分離開(kāi)發(fā)模式(go+vue)
所以我們就要從go熱門(mén)的幾款框架中做了對(duì)比:

統(tǒng)計(jì)star時(shí)間:2021-12-15

  • Beego: 一個(gè)Go語(yǔ)言下開(kāi)源的,高性能Web框架 ;
    • github:https://github.com/beego/beego, star 27.4k
  • Buffalo: 一個(gè)Go語(yǔ)言下快速Web開(kāi)發(fā)框架 ;
    • github:https://github.com/gobuffalo/buffalo, star 6.5k
  • Echo: 一個(gè)高性能,極簡(jiǎn)的Web框架;
    • github:https://github.com/labstack/echo,21.3k
  • Gin: 一個(gè)Go語(yǔ)言寫(xiě)的HTTP Web框架。它提供了Martini風(fēng)格的API并有更好的性能;
    • github:https://github.com/gin-gonic/gin, star 53.9k
  • Revel: 一個(gè)高生產(chǎn)率,全棧Go語(yǔ)言的Web框架;
    • github:https://github.com/revel/revel,star 12.5k
  • Iris: 目前發(fā)展最快的Go Web框架。提供完整的MVC功能并且面向未來(lái);
    • github:https://github.com/kataras/iris,star 21.6k

選擇Gin的幾點(diǎn)說(shuō)明:

  • 可以看到Gin的star數(shù)最多,只是一個(gè)指標(biāo),說(shuō)明使用人多,然后社區(qū)人員活躍
  • 功能簡(jiǎn)單易用性強(qiáng),可擴(kuò)展空間大
  • 內(nèi)部使用的路由是httprouter(性能非常好的路由框架).

當(dāng)然這些不夠,如何把輕框架即滿足需求又容易擴(kuò)展,還是要參考熱門(mén)的開(kāi)源項(xiàng)目,對(duì)該框架進(jìn)行補(bǔ)充;如:Docker,Kubernetes,Hugo,awesome-go等

詳細(xì)對(duì)比參考地址:https://github.com/speedwheel/awesome-go-web-frameworks/blob/master/README.md

附帶一些Gin框架開(kāi)發(fā)相關(guān)的輔助工具文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-798221.html

  • gin-swagger:通過(guò)注釋自動(dòng)生成swagger api文檔
  • gorm:ORM庫(kù)旨在讓開(kāi)發(fā)人員更加友好
  • cobra:A Commander for modern Go CLI interactions(現(xiàn)代Go CLI交互的命令行工具集)
  • viper:Viper是Go應(yīng)用程序的完整配置解決方案,toml,yaml等配置文件讀取
  • jwt-go 用于生成、解析JWT token
  • aliyun-oss-go-sdk 阿里云OSS官方包,用于操作OSS(當(dāng)然這塊具體業(yè)務(wù)了,我們使用alisdk較多)
  • excelize 讀寫(xiě)Excel

到了這里,關(guān)于Go新項(xiàng)目-為何選Gin框架?(0)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [golang gin框架] 40.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之Captcha驗(yàn)證碼微服務(wù)

    [golang gin框架] 40.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之Captcha驗(yàn)證碼微服務(wù)

    本次內(nèi)容需要 gin框架基礎(chǔ)知識(shí), golang微服務(wù)基礎(chǔ)知識(shí)才能更好理解 在前面,講解了微服務(wù)的架構(gòu)等,這里,來(lái)講解前面商城項(xiàng)目的 Captcha驗(yàn)證碼 微服務(wù) ,captcha驗(yàn)證碼功能在前臺(tái),后端 都要用到 ,可以把它 抽離出來(lái) ,做成微服務(wù)功能 編輯 這個(gè)驗(yàn)證碼功能封裝代碼captcha.go如下: 把這個(gè)

    2024年02月16日
    瀏覽(30)
  • [golang gin框架] 45.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之后臺(tái)Rbac微服務(wù)之角色權(quán)限關(guān)聯(lián)

    [golang gin框架] 45.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之后臺(tái)Rbac微服務(wù)之角色權(quán)限關(guān)聯(lián)

    角色和權(quán)限的關(guān)聯(lián)關(guān)系在前面文章中有講解,見(jiàn)[golang gin框架] 14.Gin 商城項(xiàng)目-RBAC管理之角色和權(quán)限關(guān)聯(lián),角色授權(quán),在這里通過(guò)微服務(wù)來(lái)實(shí)現(xiàn) 角色對(duì)權(quán)限的授權(quán) 操作,這里要實(shí)現(xiàn)的有兩個(gè)功能,一個(gè)是進(jìn)入授權(quán),另一個(gè)是,授權(quán)提交操作,頁(yè)面如下: ?這里需要在proto/rbacRole.proto中增加

    2024年02月14日
    瀏覽(30)
  • [golang gin框架] 26.Gin 商城項(xiàng)目-前臺(tái)自定義商品列表模板, 商品詳情數(shù)據(jù)渲染,Markdown語(yǔ)法使用

    [golang gin框架] 26.Gin 商城項(xiàng)目-前臺(tái)自定義商品列表模板, 商品詳情數(shù)據(jù)渲染,Markdown語(yǔ)法使用

    當(dāng)在首頁(yè)分類點(diǎn)擊進(jìn)入分類商品列表頁(yè)面時(shí),可以根據(jù)后臺(tái)分類中的分類模板跳轉(zhuǎn)到對(duì)應(yīng)的模板商品列表頁(yè)面 (1).商品控制器方法Category()完善 修改controllers/frontend/productController.go中的方法Category(), 判斷分類模板,如果后臺(tái)沒(méi)有設(shè)置,則使用默認(rèn)模板 (2).模板頁(yè)面案例 先來(lái)回顧一

    2024年02月01日
    瀏覽(27)
  • Go新項(xiàng)目-Go安全指南(8)

    Go新項(xiàng)目-Go安全指南(8)

    目錄 1 通用類 I. 代碼實(shí)現(xiàn) 1.1 內(nèi)存管理 1.2 文件操作 1.3 系統(tǒng)接口 1.4 通信安全 1.5 敏感數(shù)據(jù)保護(hù) 1.6 加密解密 1.7 正則表達(dá)式 2 后臺(tái)類 I. 代碼實(shí)現(xiàn) 1.1 輸入校驗(yàn) 1.2 SQL操作 1.3 網(wǎng)絡(luò)請(qǐng)求 1.4 服務(wù)器端渲染 1.5 Web跨域 1.6 響應(yīng)輸出 1.7 會(huì)話管理 1.8 訪問(wèn)控制 1.9 并發(fā)保護(hù) 1.1 內(nèi)存管理

    2024年01月19日
    瀏覽(125)
  • [golang gin框架] 42.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之后臺(tái)Rbac微服務(wù)角色增刪改查微服務(wù)

    [golang gin框架] 42.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之后臺(tái)Rbac微服務(wù)角色增刪改查微服務(wù)

    上一節(jié)講解了后臺(tái)Rbac微服務(wù)用戶登錄功能以及Gorm數(shù)據(jù)庫(kù)配置單獨(dú)抽離,Consul配置單獨(dú)抽離,這一節(jié)講解 后臺(tái)Rbac微服務(wù) 角色 增刪改查微服務(wù) 功能,Rbac微服務(wù)角色增刪改查微服務(wù)和 后 臺(tái)Rbac用戶登錄微服務(wù) 是屬于 同一個(gè)Rbac微服務(wù) 的 不同子微服務(wù)功能 ,為了區(qū)分不同子微

    2024年02月15日
    瀏覽(24)
  • 基于go語(yǔ)言gin框架的web項(xiàng)目骨架

    節(jié)省時(shí)間與精力,更高效地打造穩(wěn)定可靠的Web項(xiàng)目:基于Go語(yǔ)言和Gin框架的完善Web項(xiàng)目骨架。無(wú)需從零開(kāi)始,直接利用這個(gè)骨架,快速搭建一個(gè)功能齊全、性能優(yōu)異的Web應(yīng)用。充分發(fā)揮Go語(yǔ)言和Gin框架的優(yōu)勢(shì),輕松處理高并發(fā)、大流量的請(qǐng)求。構(gòu)建可擴(kuò)展性強(qiáng)、易于維護(hù)的代碼

    2024年02月08日
    瀏覽(26)
  • [golang gin框架] 44.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之后臺(tái)Rbac微服務(wù)之權(quán)限的增刪改查微服務(wù)

    [golang gin框架] 44.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之后臺(tái)Rbac微服務(wù)之權(quán)限的增刪改查微服務(wù)

    上一節(jié)講解了[golang gin框架] 43.Gin商城項(xiàng)目-微服務(wù)實(shí)戰(zhàn)之后臺(tái)Rbac微服務(wù)之管理員的增刪改查以及管理員和角色關(guān)聯(lián),這里講解權(quán)限管理Rbac微服務(wù)權(quán)限的增刪改查微服務(wù) 要實(shí)現(xiàn)權(quán)限的增刪改查,就需要?jiǎng)?chuàng)建對(duì)應(yīng)的模型,故在server/rbac/models下創(chuàng)建Access.go模型文件,參考[golang gin框架]

    2024年02月14日
    瀏覽(20)
  • 初始化一個(gè)Gin框架的Go-Web項(xiàng)目

    使用到的第三方庫(kù) gin Gin 框架 viper 配置文件管理 cors 跨域資源請(qǐng)求配置 gorm ORM 庫(kù) zap 日志記錄 Go 語(yǔ)言程序的入口點(diǎn) main.go 文件 使用 flag 讀取配置文件路徑參數(shù),默認(rèn)當(dāng)前目錄下 使用 viper 讀取 config.ini 配置文件初始化初始數(shù)據(jù) 初始化隨機(jī)數(shù)種子 初始化數(shù)據(jù)庫(kù) 聲明啟動(dòng)程序

    2024年02月09日
    瀏覽(27)
  • Go新項(xiàng)目-調(diào)研關(guān)于go項(xiàng)目中redis的使用場(chǎng)景,lua實(shí)戰(zhàn)(7)

    Go新項(xiàng)目-調(diào)研關(guān)于go項(xiàng)目中redis的使用場(chǎng)景,lua實(shí)戰(zhàn)(7)

    參考地址 https://juejin.cn/post/7079756129433370638 https://blog.csdn.net/gaogaoshan/article/details/41039581 https://redis.io/docs/clients/go/ redis的使用場(chǎng)景的解釋 下面一一來(lái)分析下Redis的應(yīng)用場(chǎng)景都有哪些。 1、緩存 緩存現(xiàn)在幾乎是所有中大型網(wǎng)站都在用的必殺技,合理的利用緩存不僅能夠提升網(wǎng)站訪

    2024年01月18日
    瀏覽(49)
  • Go新項(xiàng)目-配置文件的選取及區(qū)別和寫(xiě)法(1)

    Go新項(xiàng)目-配置文件的選取及區(qū)別和寫(xiě)法(1)

    先說(shuō)結(jié)論:我們選型TOML yaml,toml,json,ini 實(shí)際業(yè)務(wù)都有用 實(shí)際栗子是:我們想要把Go的切片作為配置文件,YAML寫(xiě)起來(lái)比較吃力,TOML就很容易了。 配置文件是用于配置計(jì)算機(jī)程序的參數(shù)、初始化設(shè)置的文件、業(yè)務(wù)數(shù)據(jù)公共配置等。如果沒(méi)有這些配置,我們的程序就會(huì)硬編碼

    2024年01月18日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包