第14周
后端通用系统功能架构
学习后端通用系统的核心功能模块开发,从项目结构设计到数据操作,再到API文档管理以及MVC开发流程的实现,为学习者提供全面的系统构建指南。
课程安排:
1. 创建后端项目, 规划后端目录结构,理解MVC模式,并建立Controller/Service/Dao分层的职责边界;
2. 使用Viper实现配置文件读取,完成Zap日志组件初始化、Redis初始化与Gorm初始化,搭建基础设施层;
3. 初始化Gin并定义路由结构,实现WebServer启动与优雅停止(含通过信号量控制停止);
4. 搭建Controller层通用能力:通用响应数据结构、通用API封装、指针使用规范与整体定义流程;
5. 引入Go代码热更新插件提升开发效率,并接入Swagger文档管理工具完善接口文档体系;
6. 以角色模块为例打通MVC全链路:定义Model、明确DTO作用与字段、设置DTO通用字段值,封装文字简拼工具方法;
7. 规划API错误码分类,并以角色模块实现新增/编辑/删除/详情/列表分页等完整CRUD能力;
8. 抽象通用能力:封装“判断指定表字段值是否重复”的通用方法,复用到业务校验场景;
9. 进阶查询能力:基于反射根据DTO对象动态构建查询条件,并基于SortDTO动态构建排序条件;
10. 实现后端跨域支持,确保前后端联调环境可用;
第15周
泛型编程与通用模块RESTfulAPI
聚焦于Go语言泛型编程的核心应用,涵盖泛型结构体、函数的设计与重构,以及基于泛型实现基本的CRUD操作、唯一性检测、DTO/VO数据处理等通用功能模块,同时通过字典管理模块实践泛型方法的实际开发流程。
课程安排:
1. 泛型基础与工程化落地:掌握泛型基础、自定义泛型约束与接收器,并通过重构Dao层示例建立抽象能力;
2. 基于泛型实现通用CRUD能力:实现添加、删除、批量删除、修改、获取详情与列表等基础能力;
3. 唯一性检测体系:在Service层结合泛型与反射实现唯一性检测,并在Controller层补齐记录唯一性检测能力;
4. DTO/VO扩展能力:在Controller层支持前置自定义DTO输入与后置自定义VO输出,满足不同业务展示与入参需求;
5. 字典管理模块:基于泛型方法实现CRUD,完善唯一性检测(含多字段关联查询),并解决包循环引用问题;
6. 一键生成MVC代码:了解一键生成MVC流程代码的思路与产物形态,生成ZIP包并完成基础验证;
7. 一键生成MVC代码落地:一键生成MVC流程代码项目文件,打通“生成-运行-迭代”链路;
第16周
RBAC权限与用户管理系统构建
围绕RBAC权限模型,深入讲解权限分类与树形结构,集成Casbin策略引擎,实现完整用户管理模块(角色绑定、JWT 鉴权、个人信息维护、文件上传、评论管理等),最终形成一套完整的后台管理系统核心机制。
课程安排:
1. 权限分类与权限管理:完成权限分类CRUD、权限CRUD与关联记录预加载,完善删除/修改父级/树节点获取、排序值修改等能力;
2. RBAC与Casbin权限控制:理解RBAC与Casbin模型,完成策略定义、Casbin初始化与自定义匹配函数,实现角色授权与数据同步(含删除/变更同步Casbin规则表);
3. 权限批量导入与中间件管控:实现权限分类/权限记录批量导入,并通过中间件实现接口权限管制;
4. 系统管理与部门管理:实现系统配置信息获取与部门管理相关接口;
5. 用户管理基础能力:生成用户管理基础结构,封装RSA加解密处理器与bcrypt加密,完成自定义DTO字段校验器;
6. 用户与角色绑定:实现给用户绑定角色、新增/编辑用户时绑定角色,支持修改状态与重置密码;
7. 文件上传与头像变更:封装文件上传能力,实现修改用户头像,并支持获取/删除用户头像文件;
8. 登录与鉴权体系:理解Session与JWT方案,实现基于JWT的登录、鉴权需求与鉴权中间件,支持Postman自动设置Token头,并封装Token生成与解析;
9. 个人中心与会话:实现获取当前登录者信息、设置个人环境信息、修改登录者密码与退出登录;
10. 评论与附件:实现评论管理CRUD,处理删评论关联删除附件,并通过接口解决包循环依赖;
11. 审计日志:了解日志记录方案,实现日志管理CRUD与审计日志中间件;