一、本笔记主要内容:

  • 掌握Hertz/Kitex/Gorm基本用法
  • 通过学习,正常完成Hertz/Kitex/Gorm后端开发

二、ORM的特性

  • 关联(has one,has many ,belongs to,many to many,多态)
  • create,save update,delete,find 中多种钩子方法
  • 支持 preload、joins的预加载
  • 事物,嵌套事务,save point,rollback to saved point
  • 复合主键,索引,约束
  • auto migration等
Kitex是字节跳动内部的golang微服务prc框架
hertz是字节跳动内部的http框架

DATABASE/SQL设计原理:

  • 可以使用import driver实现,driver+dsn初始化db链接
  • db链接的类型:
  • 直接连接 conn
  • 预编译 stmt
  • 事务 tx

处理返回的数据的方式:

  • exce/excecontext-->result
  • query/querycontext-->rows
  • queryrow/queryrowcontext-->row(简化rows)

GORM的官方支持数据库是市面上常用的几个

  • MySQL
  • postgreSQL
  • SQlite
  • SQL Server
连接过程中会涉及到连接池的使用
连接池是创建和管理连接的缓冲池的技术,这些 连接准备好被任何需要他们的线程所使用

连接池的优点:

  • 减少连接创建时间
  • 简化编程方式
  • 受控的资源使用

GRUD的创建

  • Create|GORM - The fantastic ORM library for Golang,aims to be developer friendly
  • GRUD的关联
  • Belongs To |GORM - The fantastic ORM library for Golang,aims to be developer friendly

Hertz相关笔记

Hertz路由:

  • hertz和gin框架类似,提供了常见的 get,put,post,delete,any等等方法用于注册路由 ,获取请求
  • 提供了参数路由和通配路由,静态路由-->命名路由-->通配路由
  • hertz参数绑定
  • hertz提供了bind,validate,bindandvalidate函数等用于参数绑定和校验
  • hertz中间件,hertz client等功能都与gin框架类似

项目实践

直播课程所展示的项目是一个使用hertz,kitex,gorm搭建出来的具备一定业务逻辑的后端api项目

demoapi:

  1. 用户登录
  2. 用户注册
  3. 用户创建笔记
  4. 用户更新笔记
  5. 用户删除笔记
  6. 用户查询笔记

demouser:

  1. 创建用户
  2. 查询用户
  3. 校验用户

demonote

  1. 创建笔记
  2. 更新笔记
  3. 删除笔记
  4. 查询笔记

以上是本次课程实验项目的抽象分析,使其具有增删改查的基本功能

本次课程大多使用字节跳动内部的框架,有gin框架基础的同学会更好入手,同时这套框架搭建这个api确实不简单,希望自己能能够尽快突破go的基础阶段,做一次真项目。