美文网首页
Spring boot 两种代码风格的对比

Spring boot 两种代码风格的对比

作者: 大继 | 来源:发表于2019-01-09 16:08 被阅读0次

前言

  • 单一规则搞开发体验,快速开发。
  • 尽量少的约定来减少沟通
  • 更高的扩展。
  • 写成文章顺便思考对比这个问题

开始对比两种风格

风格一
  • 避免了JPA LAZY的处理,问题是返回了不同了实体,导致结构不统一,使用端需要进行思考。JSON格式如下:
//普通类别及普通关联级查询
GET users?page=0&size=1
[{
  "id":1;
  name:"nick name"
}]

//坏处:用户详情,带来了结构的变化,在添加和修改时造成,使用方需要调整json结构
GET users/details?page=0&size=1
[{
  enable:true,
  userRoles:["admin","tester"]
   user:{
    "id":1;
    name:"nick name"
  }
}]

//好处:在Spring boot JPA开发体验上有所提示,不在需要关注Lazy 或 EAGER。Details 就是eager, users就是lazy


//添加时,查询与修改格式完全不统一导致不舒服
POST users/details/add
{
  name:"xxxx",
  userRoles:["admin"],
  enable:true
}
风格2
//普通类别及普通关联级查询,lazy.   问题是数据里存在 空实体,不管恶心,管了需要加VO增加代码量。
GET users?page=0&size=1
[{
  "id":1;
  name:"nick name",
  userDetail:null,
  userRoles:[]
}]

//eager: 保持了不变的风格。让使用方更加明白,实体之间的关系。需要后段对eager 字段进行控制。
GET users/details?page=0&size=1
[{
  "id":1;
  name:"nick name",
  userDetail:{enable:ture},
  userRoles:["admin"]
}]

//添加时,查询与修改格式 一致,减少了约定
POST users/details/add
{
  name:"xxxx",
  userRoles:["admin"],
  userDetail:{enable:true}
}

总结

  • 为了可以长期舒服使用,后段还是辛苦点好。风格2 更加适合长期开发约定。

相关文章

网友评论

      本文标题:Spring boot 两种代码风格的对比

      本文链接:https://www.haomeiwen.com/subject/akrgrqtx.html