酒旅项目总结

酒旅项目总结,第1张

文章目录

​ 项目架构图

​ API设计规范

​ 数据库设计

​ 接口设计

​ 需求开发

​ 总结

​ 对自己的一句话

项目架构图


API设计规范
  1. 请求方式只用 GET/POST

  2. 不要使用 RESTFul 的路径传参

  3. 请求参数规范

    1. 参数名采用驼峰命名
    2. 与数据库中存在的字段命名要保持一致
    3. 如果参数中有多个 id 参数,必须区分命名,且要与数据库一致
    4. 数据类型需要选择正确
  4. 响应数据示例的格式必须的实际的格式

  5. 响应数据的类型和描述和请求参数的要求一致

数据库设计
  1. ​ 字段名做到见名知意
  2. ​ 如有多个id,必须明确区分
  3. ​ 必须有 唯一标识 逻辑删除 创建和更新的时间 这些字段
  4. ​ 数据类型选择对应

接口设计 我们队分配到的模块

我分配到的接口

需求开发 开发规范:

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工具

注意事项:
  1. 返回值使用 CommomResult 分页 CommomResult, 返回码 使用 resultCode
  2. 配置 redisTemlate 解决 redis 乱码问题
  3. 调用Asserts.fail 会抛出 ApiException异常,被 GlobalExceptionHandler 全局异常处理器(处理GlobalExceptionHandler 里面对应的异常),@NotNull 注解也会抛出异常被 ControllerAdvice 捕获
  4. redisServiceImpl 对 redisTemlate 的方法进一步封装。提供redis 的各项基本 *** 作。
  5. service 里面调用方法要加 this 来调用。
  6. 注释:参数介绍 和 返回值
  7. service 需要继承 Iservice,ServiceImpl 需要继承 mp.ServiceImpl
总结:

​ 经过这一个月来的真项目实践,自己编码的时间可能不长,多的在于从无到有的全过程。从需求分析,数据库设计,接口设计,编写代码,熟悉团队协作开发,到最终开发完成都需要花费大量的精力。很多时候,都感觉信息量很大。期间也遇到不少问题。问题如下:

  1. ​ 团队协作工作不熟悉,比如git,apipost等,因我 *** 作失误,给队友造成了一些麻烦。
  2. ​ 需求分析,考虑不够全面,到编码实现时各种头大。
  3. ​ 自己的数据库设计,接口设计,编码格式不规范,经过很多次更改优化。
对自己的一句话 感觉难的状态才是对的,感觉轻松的状态是原地踏步或者退步!!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/872151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存