0%

从今年7月份开始,因为公司需要,亟需解决产品易用性痛点问题,我开始前端易用性改进工作,我总结了易用性的6个方面,梳理出24个改进点,在随后的版本中逐步落地,目前大部分改进点都得到落实,产品的易用性得到极大的改观,几个月的辛勤付出终有成果,心中甚是欣慰。与此同时,我也负责前端的设计开发以及前端负责人工作,还好自己的基本功扎实😊,虽然一直从事后端研发,极短的时间内,我已经可以娴熟的进行前端开发和解决各种疑难问题,而团队管理更是我擅长的,团队有成员对我说,你要是早点来就好了,我就可以学到更多东西,这真是对我最大的褒奖。短短几个月的时间,我已经把前端的代码翻了一遍,说实在,以前代码的规范性非常差,组件复用性更差,完全没有复用的思想,整个团队要提升的地方实在太多了。在开发过程中,我发现很多问题经常重复出现,例如残留数据的问题,一方面是状态管理使用不当,全部都是用的全局状态,另一方面是没有重置状态的意识。因此我将近几个月的经验总结成一份规范,不仅能够提升易用性而且可以避免很多前端Bug,也算是一份年终总结,希望对大家有所启发和帮助。

阅读全文 »

项目遇到一个奇怪的问题,分页查询的页面会自动在两页之间跳变,F5刷新之后问题消失,第一次测试报这个问题的时候,让测试按照最近的操作重试一下,又重现了一次,想着应该是必现问题,后面再看,结果后面再看的时候,怎么都无法重现了。过了一段时间,问题又再次出现,这次一定不能再放过了,F12查看网络调用,发现确实会发送两次调用,两次都是定时刷新触发的,自此心里基本有数应该是定时器导致的。接下来通过分析代码,终于找到问题的根源,是因为出现僵尸定时器,在背后还在一直运行,它里面的状态是不会变的,始终是某一页,这样切换到新的页之后,就会在两页之间自动切换。这个问题还挺隐晦的,特此记录下。

阅读全文 »

最近项目中碰到一个奇怪问题,项目是react+antd+umi实现,当页面中点击对话框,页面会自动滚动到最上面。最终定位跟antd dialog的实现有关,在某种条件下会触发此问题,下面分享一下问题定位过程,希望对遇到类似问题的同学有所帮助。

阅读全文 »

又是一个antd组件问题,密码组件在dom中可以看到密码,这算是一个低级的问题,为什么还会存在这种问题,翻看antd源代码,发现其实专门解决过这个问题,但是并没有解决彻底,在某些场景下仍然存在。

阅读全文 »

最近测试同学提了一个问题,觉得antd的时间选择组件,没有提示时分秒,不太友好。这种问题都能够提出来,是不是感觉咱们的前端水平已经被激发到极致了,估计antd是不太会接受这种问题的。这种问题怎么解呢,你还别说,真让我想到一个好办法,那就是用css伪类。

阅读全文 »

项目中的下拉菜单项越来越多,最近又加了分组,长长的一条非常难看,能不能把它改成横向布局呢。项目是用的antd,研究了下antd的下拉菜单是用ul,li实现的,通过css的flex布局和grid布局很容易实现横向布局,当然也可以只用grid布局实现,grid对于一维二维都可以胜任,更加强大。

阅读全文 »

使用Spring Data Jpa的CriteriaQuery进行动态条件查询时,可能会遇到一个陷阱,当条件为空时,查询不到任何结果,并不是期望的返回所有结果。这是为什么呢?

阅读全文 »

Spring Data JPA对于单表操作非常方便,采用定义接口的方式,不用写任何实现代码就可以获得常用的数据库操作。但是对于多表联合查询,则不那么方便了,目前公司项目是采用数据库视图的方法,将多表联合查询全部变成了单表查询。数据库视图有众多好处,不失为一种解决方案,但是也存在一些弊端:

  • 当数据库表结构变化需要同步修改视图,维护繁琐;
  • 业务需求变化可能导致频繁修改视图暴露的字段;
  • 有些场景可能只需要2表联合,有些场景需要更多表联合,要么建立一个大视图,要么需要建立多个类似视图,都不太好;
  • 视图的SQL会变得越来越庞大,难以维护;
  • 定义了实体类,JPA自动建表会把视图建成表;
  • SQL SERVER会将视图的查询转换为对基本表的查询,性能不高。

总之将一部分业务逻辑放到数据库层维护,并不是一个特别好的方式。那么Spring Data JPA对多表查询还有哪些方法呢?有没有更好的选择呢?

阅读全文 »

在springboot中开发RESTful接口,经常会遇到日期时间转换相关的问题,例如我们明明输入看起来很正常的日期时间字符串,但是系统却报错无法解析:

JSON parse error: Cannot deserialize value of type java.time.OffsetDateTime from String “2020-06-06 14:26:31”

或者接口返回的日期时间字符串是一个很奇怪的字符串:

2020-06-04 14:41:54.767135400+08:00

如何正确的处理日期时间,本文将一探究竟。

阅读全文 »