针对 go 开发新手,必备的五个架构包含:echo:高性能、可扩展的 web 架构gin:轻巧、迅速、提供多种格式 web 架构gorm:易用的 orm,提供多种数据库gorilla toolkit:实用程序库,给予路由、对话管理等功能viper:简单配备库,提供多种格式
zvvq.cn
内容来自zvvq
新手必备的 Go 架构针对 Go 开发者而言,选择合适的架构尤为重要。架构可以简化研发流程、提供额外的作用并促进代码的可重用性。本文将介绍新手必备的 Go 架构,并提供实际案例以展示其用法。 zvvq
1. EchoEcho 是一款高性能、可扩展的 web 架构,因为他易于使用和强大的可定制性而著称。它提供了一系列中间件,帮助你轻松解决要求、验证和身份认证。 zvvq.cn
packagemain
内容来自samhan
import( 内容来自samhan666
"net/http"
zvvq
"github.com/labstack/echo/v4"
) 内容来自zvvq
funcmain(){
内容来自samhan666
e:=echo.New() 内容来自samhan666
e.GET("/",func(cecho.Context)error{ 内容来自samhan666
returnc.String(http.StatusOK,"Hello,World!")
})
e.Logger.Fatal(e.Start(":3000")) 内容来自samhan
} copyright zvvq
2. GinGin 是另一个轻量且高性能的 web 架构,因其速率、灵活性以及对 JSON、YAML 等各个格式适用而著称。 本文来自zvvq
packagemain zvvq好,好zvvq
import( zvvq.cn
"net/http"
内容来自zvvq
"github.com/gin-gonic/gin"
)
funcmain(){
router:=gin.Default() zvvq.cn
router.GET("/",func(c*gin.Context){
内容来自zvvq,别采集哟
c.JSON(http.StatusOK,gin.H{
本文来自zvvq
"message":"Hello,World!",
})
})
router.Run(":8080")
}
copyright zvvq
3. GORMGORM 是一个智能化且易于使用的 ORM(对象关系映射器),为开发者带来了对数据库便捷浏览。它提供多种数据库,包含 MySQL、PostgreSQL 和 SQLite。 zvvq.cn
packagemain 内容来自samhan
import( copyright zvvq
"fmt"
zvvq好,好zvvq
"github.com/jinzhu/gorm" 内容来自samhan666
_"github.com/jinzhu/gorm/dialects/mysql"
内容来自zvvq,别采集哟
) 本文来自zvvq
typeUserstruct{
IDuint
zvvq
Namestring copyright zvvq
} 本文来自zvvq
funcmain(){ 内容来自zvvq,别采集哟
db,err:=gorm.Open("mysql","user:password@tcp(127.0.0.1:3306)/database?charset=utf8&parseTime=True&loc=Local")
内容来自samhan666
iferr!=nil{
panic(err)
}
copyright zvvq
deferdb.Close() 内容来自samhan
user:=User{Name:"JohnDoe"}
内容来自samhan666
iferr:=db.Create(&user).Error;err!=nil{
内容来自zvvq
panic(err)
内容来自samhan
} 内容来自zvvq,别采集哟
fmt.Println("Usercreatedsuccessfully:",user)
}
zvvq好,好zvvq
4. Gorilla ToolkitGorilla Toolkit 是一组实用程序库,为常见编程任务给予标准库工具。比如,它提供路由、会话管理和身份认证中间件。 内容来自samhan666
packagemain
内容来自zvvq
import( copyright zvvq
"net/http" 内容来自samhan
"github.com/gorilla/mux" copyright zvvq
"github.com/gorilla/sessions" 内容来自samhan
)
zvvq
funcmain(){
router:=mux.NewRouter()
store:=sessions.NewCookieStore([]byte("secret-key")) 内容来自zvvq
router.Use(sessions.Sessions("session-id",store))
router.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){
zvvq
session,_:=store.Get(r,"session-id") 内容来自zvvq
session.Values["user"]="JohnDoe"
内容来自zvvq
session.Save(r,w)
本文来自zvvq
}) 本文来自zvvq
http.ListenAndServe(":8080",router)
} zvvq.cn
5. ViperViper 是一个简单的 Go 配备库,用以读取和写入应用软件配备。它提供多种格式,如 JSON、YAML 和 TOML。 copyright zvvq
packagemain
import(
"fmt" zvvq好,好zvvq
"github.com/spf13/viper" 内容来自zvvq,别采集哟
)
funcmain(){
viper.SetConfigName("config")
zvvq
viper.SetConfigType("json") copyright zvvq
viper.AddConfigPath("./configs")
copyright zvvq
iferr:=viper.ReadInConfig();err!=nil{
panic(err)
zvvq好,好zvvq
}
fmt.Println("APIKey:",viper.GetString("api_key")) 内容来自zvvq
}
以上是新手必备的五个 Go 架构。他们带来了普遍功能和用途,能够显着提高你的 Go 开发效率。通过这个架构,您能够轻松搭建健硕、高性能的 Web 应用软件、解决数据库交互、管理配备并实施别的普遍任务。 内容来自samhan666
以上就是新手必备的 Go 架构的详细内容,大量请关注其他类似文章! 内容来自samhan