程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了wh-研发功能复盘大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1.复杂排序功能

  功能介绍:大概的场景是:查询的结果包括几种不同的列表变量,需要根据不同属性列表里面的命中情况来进行排序。

  解决方案:将需要排序的内容转化为排序属性,如果属性很多可以定义一个包含所有排序属性的类,将该类组装进列表对应的类型当中。有了排序属性之后,使用thenComparing方法逐个排序即可。

 

2.toMap方法的使用

  将一个list转化成Map的时候,可以使用toMap方法,这个方法后面可以跟一个具体键值重复的冲突覆盖规则函数。

 

3.复杂查询功能

  功能介绍:一个人员信息查询的接口,这个接口的入参是人名和标识码的组合,然后根据参数包含的类型,去到对应的数据源(业务库,Mapp, wiki)中查询出对应的结果。

  实现方案:设计统一的查询接口,针对每种不同的数据源给出不同的数据实现(策略模式)。查询时,根据传入的参数获取对应的实现对象(工厂方法)。

 

4.对查询的结果(内存结果,为入到业务库)做状态标记

  功能介绍:鉴于3的需求,这里用户需要对从各种数据源中查询出来的结果做标记,然而查询的结果不一定在业务库当中(来自其它数据源)

  实现方案:将用户需要标记的数据结果转为json后生成其MD5加密的值与状态一起存入库中,这样对于查询出来的同样结果,计算MD5后与库中值比对后即可还原状态。

  注意事项:查询结果可能会包含其它属性:如排序字段,状态字段,这些由查询字段衍生出来的字段需要再加密之前排除。

       由于是加密操作,要确保单个被加密的查询结果是不会变化的,而且序列化为json字符串的方法也要是稳定的(如,转为json后,属性字段的排序不能变化)。

  优劣:劣势:1.增加查询时间成本,查询出的结果为展示状态还需要额外计算MD5以及查库比对。

     优势:无需将查询结果入库保存,MD5的值是定长的(无需使用大字段来存如原始值)。

大佬总结

以上是大佬教程为你收集整理的wh-研发功能复盘全部内容,希望文章能够帮你解决wh-研发功能复盘所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。