当前位置: 首页 > news >正文

网站建设的目前背景微信店铺小程序开发教程

网站建设的目前背景,微信店铺小程序开发教程,网站开发维护专员岗位职责,华建设计网站#x1f9e1; 三件套介绍 Gorm Gorm 是一个已经迭代了10年的功能强大的 ORM 框架#xff0c;在字节内部被广泛使用并且拥有非常丰富的开源扩展。 Kitex Kitex 是字节内部的 Golang 微服务 RPC 框架#xff0c;具有高性能、强可扩展的主要特点#xff0c;支持多协议并且拥有… 三件套介绍 Gorm Gorm 是一个已经迭代了10年的功能强大的 ORM 框架在字节内部被广泛使用并且拥有非常丰富的开源扩展。 Kitex Kitex 是字节内部的 Golang 微服务 RPC 框架具有高性能、强可扩展的主要特点支持多协议并且拥有丰富的开源扩展。 Hertz Hertz 是字节内部的 HTTP 框架参考了其他开源框架的优势结合字节跳动内部的需求具有高易用性、高性能、高扩展性特点。 三件套使用 Gorm Gorm 基础使用 GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.Gorm 的约定 1、Gorm 使用名为 ID 的字段作为主键。 2、如果没有定义 TableName() 方法使用结构体的蛇形复数作为表名。 3、列名为字段名的蛇形小写。 4、使用 CreatedAt、UpdatedAt 字段作为创建、更新时间。Gorm 支持的数据库 Gorm 目前支持 MySQL、SQLServer、PostgreSQL、SQLite。Gorm 通过驱动来连接数据库如果需要连接其它类型的数据库可以复用/自行开发驱动。 连接到数据库 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.CRUD操作 package mainimport (gorm.io/gormgorm.io/driver/sqlite )// 定义 gorm.Model 结构体对应数据库中一张表 type Product struct {gorm.Model // 也可以直接定义 Deleted gorm.DeletedAtCode string gorm:default:D42 // 设置默认值Price uint gorm:default:200 }// 为 model 定义表名 func (p Product) TableName() string {return product }func main() {// 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情dsn : user:passtcp(127.0.0.1:3306)/dbname?charsetutf8mb4parseTimeTruelocLocal// 连接 MYSQL 数据库 https://gorm.cn/zh_CN/docs/connecting_to_the_database.htmldb, err : gorm.Open(mysql.Open(dsn), gorm.Config{// 提高性能SkipDefaultTransaction: true, // 关闭默认事务PrepareStmttrue, // 缓存预编译语句})if err ! nil {panic(failed to connect database)}// 迁移 schemadb.AutoMigrate(Product{})// Create 创建数据db.Create(Product{Code: D42, Price: 100}) // 一条数据创建对象product : []*Product{{Code: D41}, {Code: D42}, {Code: D43}} // 多条数据创建切片db.Create(product)// Read 查询数据var product Product// 查询单条数据db.First(product) // 获取第一条记录主键升序没有找到记录时返回 ErrRecordNotFound 错误db.First(product, 1) // 传递整形根据整形主键查找db.First(product, code ?, D42) // 传递查询条件查找 Code 字段值为 D42 的记录// 使用 Find 查询多条数据不会返回错误db.Where(code ?, D42).Find(product) // SELECT * FROM product WHERE code D42;// Update 更新数据db.Model(product).Where(code ?, D42).Update(Price, 200) // 更新单个字段// 更新多个字段db.Model(product).Updates(Product{Price: 200, Code: F42}) // 仅更新非零值字段db.Model(product).Updates(map[string]interface{}{Price: 200, Code: F42}) // 可更新零值字段// Delete - 删除数据// 物理删除删没了db.Delete(product, 1) // 传递整形根据整形主键删除db.Delete(product, code ?, D42) // DELETE FROM product WHERE code D42;// 软删除GORM 会将 DeletedAt 置为当前时间 不能再通过正常的查询方法找到该记录。db.Where(code ?, D42).Delete(Product{}) // UPDATE product SET deleted_at2023-01-20 10:23 WHERE code D42;db.Unscoped().Where(code ?, D42).Find(product) // 使用 Unscoped 找到被软删除的记录 }Gorm 事务 Gorm 提供了 Begin、Commit、Rollback 方法用于使用事务。 // Transaction 用于自动提交事务避免漏写 Rollback()、Commit() db.Transaction(func(tx *gorm.DB) error {// 在事务中执行一些 db 操作从这里开始您应该使用 tx 而不是 dbif err : tx.Create(Animal{Name: Giraffe}).Error; err ! nil {// 返回任何错误都会回滚事务return err}if err : tx.Create(Animal{Name: Lion}).Error; err ! nil {return err}// 返回 nil 提交事务return nil })Gorm 扩展生态 Kitex Kitex 目前对 Windows 的支持不完善如果本地开发环境是 Windows 建议使用虚拟机或 WSL2。 安装代码生成工具 go install github.com/cloudwego/kitex/tool/cmd/kitexlatest go install github.com/cloudwego/thriftgoiatest使用 IDL 定义服务与接口 如果我们要进行 RPC就需要知道对方的接口是什么需要传什么参数同时也需要知道返回值是什么样的。这时候就需要通过 IDL 来约定双方的协议就像在写代码的时候需要调用某个函数我们需要知道函数签名一样。生成代码 $ kitex -module example -service example echo.thriftKitex 服务注册与发现 Kitex 服务发现 目前 Kitex 的服务注册与发现已经对接了主流了服务注册与发现中心如 ETCDNacos 等。Kitex 生态 Hertz Hertz 基本使用 快速开始 | CloudWeGo 使用 Hertz 实现服务监听 8080 端口并注册了一个 GET 方法的路由函数 package mainimport (contextgithub.com/cloudwego/hertz/pkg/appgithub.com/cloudwego/hertz/pkg/app/servergithub.com/cloudwego/hertz/pkg/common/utilsgithub.com/cloudwego/hertz/pkg/protocol/consts )func main() {h : server.Default(server.WithHostPorts(127.0.0.1:8080))// 静态路由h.GET(/ping, func(c context.Context, ctx *app.RequestContext) {ctx.JSON(consts.StatusOK, utils.H{message: pong})})h.Spin() }Hertz 路由 1、提供了 GET、POST、PUT、DELETE、ANY 等方法用于注册路由。 2、提供了路由组Group的能力用于支持路由分组的功能同时中间件也可以注册到路由组上。 3、提供了参数路由和通配路由路由的优先级为静态路由命名路由通配路由。Hertz 参数 提供了 Bind、Validate、BindAndValidate 函数用于进行参数绑定和校验。Hertz 中间件 主要分为客户端中间件与服务端中间件。Hertz Client 提供了 HTTP Client 用于帮助用户发送 HTTP 请求。Hertz 代码生成工具 Hz 通过定义 IDL(inteface description language) 文件即可生成对应的基础服务代码。
http://www.w-s-a.com/news/149132/

相关文章:

  • 企业建网站得多少钱长沙财优化公司
  • 网站开发api平台扒完网站代码之后怎么做模板
  • PHP网站建设选择哪家好动画设计师月薪多少
  • 网站如何做市场推广网站开发主要步骤
  • 浏览器正能量网站网页文章导入wordpress
  • 江西中国建设银行网站首页永久免费自助建网站
  • 创建自己网站的步骤吸引人的微信软文
  • 网站建设与网页设计论述题软件开发公司在哪里
  • 二级网站建设方案模板亚马逊网站建设案例
  • 网站开发兼职团队门户网站如何制作
  • 高州市网站建设开发区招聘信息
  • 上海专业网站制作设计公司企业邮箱怎样注册
  • 网站建设在商标第几类网站建设 设计创意
  • 做一网站APP多少钱重庆中色十二冶金建设有限公司网站
  • 网上做效果图网站有哪些软件徐州泉山区建设局网站
  • 凯里网站制作网站篡改搜索引擎js
  • 如何使用凡科建设网站武安城乡建设网站
  • 网站建设网站及上传wordpress火车头发布
  • 有没有做网站的团队电脑版传奇网站
  • 建立企业网站公司医疗创意小产品设计
  • 深圳 做网站 车公庙免费的招标网有哪些
  • 网站在那里备案成都成华区网站建设
  • 做网站选哪家好搜索引擎优化的目标体系包括哪些
  • 做数据可视化的网站ppt2016是制作网页的软件
  • 济宁市建设工程质量监督站网站徐州网站优化推广
  • 北京网站设计多少钱php做商品网站
  • 能打开的网站你了解的彩票网站开发dadi163
  • 手机做网站价格优秀企业网站建设价格
  • 电商网站建设企业做网站的客户多吗
  • 有做思维图的网站吗西安建设市场诚信信息平台网站