1. 出发去做

首次开始去做一个项目,首先理清楚需求,后端就是规范式的初始化一个项目,前端我还是倾向于使用现成的模板仓库去做相应的修改。

  • 后端所使用各个库的作用:
    • Spring Boot DevTools:使代码热更新,更改了项目代码后会自动重启项目
    • LombokJava 的注解工具,帮助自动生成 Get Set 方法
    • Spring Configuration Processor:读取属性文件时有用(我觉得可选)
    • Spring Web:web 框架,提供接口访问、restful接口等能力
    • MySQL Driver:Mysql数据库驱动
    • MyBatis Framework:Java 操作数据库的框架,持久层框架,对 jdbc 的封装
    • MyBatis-plus:对 mybatis 的增强,不用写 sql 也能实现增删改查(装这个就行,就不要安装上面的 MyBatis 了
    • junit:单元测试

2. 数据库

根据功能去设计数据库表,最好将SQL脚本写好之后保存下来,方便后续的执行

  • 索引:给表创建一个目录,可以考虑查询该表时经常用哪个字段来查询,然后指定该字段来建立索引,这样数据量大了之后查询会快很多
  • 基本每张表的必备字段
    • create_time:创建时间
    • update_time:更新时间
    • is_delete:是否删除,通过该标识可以逻辑删除该数据
  • 有效标识
    • status:通过该字段可以用不同的数值来标识该项数据的状态,如0表示用户有效,1表示用户暂时禁用,2表示用户永久封号等等。(statusis_delete 的区别在于 status 和业务相关,is_delete 仅和该项数据相关,和业务无关)

3. 登录认证服务层

🌟开发技巧

  • 安装插件 MyBatisX,可以快速的通过数据表生成对应的 model mapper server 代码
  • 鼠标放在需要测试的类名上,然后使用快捷键 Alt + Enter 可以快速的创建测试类
  • 插件 GenerateAllSetter 帮助生成假数据,可用于测试。使用方法同样是:Alt + Enter
  • Hutool 是一个小而全的 Java 工具类库,可用于校验合法性等
  • @Slf4j 注解可以方便的编写日志,该注解由 lombok 提供
  • MyBatis Plus 支持配置逻辑删除,这样查询的时候只查询逻辑上存在的数据,使用文档

数据脱敏:后端将查询到的数据做二次处理,仅将需要返回的数据拿给前端,以达到保护信息的目的

4. 用户管理接口

  • @RestController 注解让接口的响应类型都为 Json,适用与编写 Restful 风格的 API
  • 公共用到的一些量应该定义为常量,单独放在 constants 目录中
  • 设计任何接口时都应该考虑权限问题

2.03