【AIAppMarket项目】第二阶段-市场平台的后端核心基础业务流程开发

主要工作内容

  • 需求分析
  • 库表设计
  • 后端基础CRUD开发
  • 后端业务流程开发

需求设计

  • 项目后端功能:
    1. 用户注册/登录,管理员管理用户信息
    2. 登录成功后的用户创建答题应用 => 创建应用中的题目(包括题目选项得分) => 创建评分规则(评分策略和评分结果)
    3. 管理员管理应用,即审核、发布/下架应用
    4. 用户查看和检索market中的应用列表,进入应用详情页,在线答题并提交回答
    5. 经过评分模块计算后,用户可查看本次评分结果
  • 根据上述功能,模块划分如下:
    1. 用户模块
    2. APP服务模块
    3. 题目模块
    4. 答题模块
    5. 统计分析模块

库表设计

  • 基本与功能模块对应:
    1. 用户表:记录用户的基本信息和创建/更新时间等
    2. APP表:记录APP基本信息/类型/审核状态和创建/更新/审核时间等
    3. 题目表:记录题目的基本信息和创建/更新时间等,题目内容使用json格式
    4. 答题记录表:记录答题记录和创建/更新时间等
    5. 评分结果表:记录答题结果的评析结果和创建/更新时间等,不同类型的题目使用不同的字段填充结果

开发流程

项目初始化

  • 使用鱼皮大佬 程序员鱼皮的一个基于springboot的项目初始化模板来初始化项目,该模板中整合了常用框架和主流业务的示例代码。
  • 后续会根据自己的项目开发经验来对模板进行改造,逐渐形成自己的初始化模板。

后端基础开发

涉及主要方面:

  1. 数据访问层代码生成:
    使用IDEA插件 MyBatisX 根据设计的库表来自动生成 mapper数据库实体类 代码,并移动到相应包下。
  2. 业务逻辑代码生成:
    使用鱼皮的万用模板的代码生成器工具(CodeGenerator)生成代码,包括:Controller、Service 接口和实现类、数据模型包装类和枚举类。后续应该还会做一下 CodeGenerator 这个项目
  3. 数据模型开发:
    通过分析不同层间传输需要的属性,区分了 DTO/VO 等类的方式,保持了系统的分层架构和职责分离,提高了系统的可维护性和可扩展性,确保了数据传输和处理的清晰和高效。
    1. DTO类(Data Transfer Object)
      DTO 用于在不同的层或服务之间传递数据,通常用于在服务层和控制层之间传输数据。
      DTO 的主要目的是减少方法调用的次数,并简化数据传输过程。
      例如:对于 APP 模块来说,涉及到 APP 添加接口、APP 编辑接口、APP 更新接口等 APP 相关功能,而这些接口的调用所需的属性各不相同,因此可以通过区分AppAddRequestAppEditRequest类封装所需的属性。
    2. 视图类(View Object)
      定义 VO 类作用是专门给前端返回对象,可以节约网络传输大小、或者过滤字段(脱敏)、保证安全性。VO 通常只包含在视图中需要显示的数据,可能与 DTO 有重叠,但更多关注的是 UI 层的数据表示。
    3. 请求类(Request Object)
      请求类用于接收来自客户端的请求数据,通常用于控制层(Controller)。它们封装了客户端传递的数据,用于处理表单提交、API 调用等。
    4. JSON结构对应的类
    5. 枚举类
      例如应用的类型(测评类/得分类)、应用审核的状态等。
  4. Controller和Service的接口及服务类开发
  5. 评分模块开发
    需求:针对不同的应用类别和评分策略,编写不同的实现逻辑,因此考虑使用策略模式
    策略模式是一种行为设计模式,它定义了一系列算法,并将每个算法封装到独立的类中,使得它们可以相互替换。
    在本项目的场景中,输入的参数是一致的(应用和用户的答案列表),并且每种实现逻辑区别较大,很适合使用策略模式。

tips:
后续可能对文章有所更新,欢迎指正。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值