项目架构图
API设计规范
数据库设计
接口设计
需求开发
总结
对自己的一句话
项目架构图
-
请求方式只用 GET/POST
-
不要使用 RESTFul 的路径传参
-
请求参数规范
- 参数名采用驼峰命名
- 与数据库中存在的字段命名要保持一致
- 如果参数中有多个 id 参数,必须区分命名,且要与数据库一致
- 数据类型需要选择正确
-
响应数据示例的格式必须的实际的格式
-
响应数据的类型和描述和请求参数的要求一致
- 字段名做到见名知意
- 如有多个id,必须明确区分
- 必须有 唯一标识 逻辑删除 创建和更新的时间 这些字段
- 数据类型选择对应
1.设置非空验证
官网:http://hibernate.org/validator
例:
public class Car {
@NotNull
private String manufacturer;
@NotNull
@Size(min = 2, max = 14)
private String licensePlate;
@Min(2)
private int seatCount;
// ...
}
2.一些配置不要放在业务层
例:
@Configuration
public class DruidConfig {
/**
* 配置Druid 监控启动页面
*
* @return servletRegistrationBean
*/
@Bean
@ConditionalOnMissingBean
public ServletRegistrationBean druidStartViewServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
// 白名单
// servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
// 黑名单
servletRegistrationBean.addInitParameter("deny", "192.168.1.100");
// 登录查看信息的账密,用于登录Druid监控后台
servletRegistrationBean.addInitParameter("loginUsername", "druid");
servletRegistrationBean.addInitParameter("loginPassword", "druid");
// 是否能够重置数据
servletRegistrationBean.addInitParameter("resetEnable", "true");
return servletRegistrationBean;
}
3.不用try catch
使用全局捕捉异常例GlobalExceptionHandler、ApiException直接引common模块使用。
4.if else问题
可以直接if return让代码简洁。
if{
...
}
return ...
5.日志打印问题
在主要流程打印日志,节约资源。
6.接口注释写好增加可读性。
7.if else特别多时用switch语句,让代码干净整洁些。
8.相应模块写在对应模块里,例如admin的写admin模块里。
9.使用mybatis-plus 例如Service直接继承Iservice的方法简洁代码
10.minio上传文件单独写一个service
11.字符串拼接问题
12.redis的使用要修改
13.mybatis-plus使用LambdaQueryWrapper通过方法引用的方式来使用实体字段名的 *** 作
例:
LambdaQueryWrapper lambda3 = Wrappers.lambdaQuery();
lambda3.like(User::getName, "雨").lt(User::getAge, 40);
14.大小写问题例如DTO、VO
15.非空用hutool工具
注意事项:- 返回值使用 CommomResult 分页 CommomResult, 返回码 使用 resultCode
- 配置 redisTemlate 解决 redis 乱码问题
- 调用Asserts.fail 会抛出 ApiException异常,被 GlobalExceptionHandler 全局异常处理器(处理GlobalExceptionHandler 里面对应的异常),@NotNull 注解也会抛出异常被 ControllerAdvice 捕获
- redisServiceImpl 对 redisTemlate 的方法进一步封装。提供redis 的各项基本 *** 作。
- service 里面调用方法要加 this 来调用。
- 注释:参数介绍 和 返回值
- service 需要继承 Iservice,ServiceImpl 需要继承 mp.ServiceImpl
经过这一个月来的真项目实践,自己编码的时间可能不长,多的在于从无到有的全过程。从需求分析,数据库设计,接口设计,编写代码,熟悉团队协作开发,到最终开发完成都需要花费大量的精力。很多时候,都感觉信息量很大。期间也遇到不少问题。问题如下:
- 团队协作工作不熟悉,比如git,apipost等,因我 *** 作失误,给队友造成了一些麻烦。
- 需求分析,考虑不够全面,到编码实现时各种头大。
- 自己的数据库设计,接口设计,编码格式不规范,经过很多次更改优化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)