“纯数据结构”

依据纯函数的思路,我想到了一种所谓的纯数据结构

什么是纯数据结构

前端请求一个Url,例如/user/getInfo,后端会返回

{
  "code": 401
}

也有可能会返回

{
  "code": 200,
  "user": {
    "name": "zjhch123",
    "age": 22,
    "homepage": "https://www.hduzplus.xyz"
  }
}

此时,针对/user/getInfo,前后端约定的数据结构就是不纯的。
如果在code = 401时,后端返回的数据结构类似于

{
  "code": 401,
  "user": {}
}

那么此时,可以称此接口返回的数据结构为“浅纯数据结构”。
如果在code = 401时,后端返回的数据结构类似于

{
  "code": 401,
  "user": {
    "name": "",
    "age": null,
    "homepage": ""
  }
}

则此时可以说此接口返回的数据结构是“深纯数据结构”。

纯数据结构的优点

比如有的函数会依据传入参数,有的返回obj,有的返回null,那么在调用这个函数之后必须要对函数的返回值进行值检测。
有时在前端项目中需要根据一个数据结构进行模板渲染,此时如果使用了纯数据结构的思想,就可以避免值判断,直接渲染模板而不会报错。
所以说纯数据结构是有相当的使用场景与现实意义的。


当然了,以上都是我的胡扯,我个人觉得在项目中能定义好数据结构格式对前后端联合开发都有好处。在前后端开发中应该遵循约定原则,能保证很多不必要的错误以及耗费时间的联调。