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