JFinal版本迭代是真稳

刚刚在开源中国看到SpringBoot 2.3.3稳定版的发布新闻,点进去看了一眼,发现新特性更新没提到什么,倒是提到修复了一些Bug,Bug还不少。然后想到JFinal的版本更新,对于JFinal版本更新Bug修复没什么印象,更多的是性能优化,改进和新特性,于是看了下JFinal的更新日志,从3.6版本更新到4.9.01版本,更新了174项,涉及到Bug修复的,也就那么几条:

3.6-16:Model、Db、DbPro 中的针对多主键(联合主键) 的 findById(...) 方法更名为 findByIds(...),deleteById(...) 更名为 deleteByIds(...) 解决 JDK 8 之下的参数类型转换异常问题

3.7-11:ClassPathSource 找不到文件时的异常提示信息如果发生在 class path、jar 包中,提示信息中添加 "in CLASSPATH or JAR" 文本,定位错误到 class path 与 jar包而非文件系统目录加快排错效率

3.8-1:AopFactory 修复子类没有属性时,超类无法被注入的问题

4.8-18:改进 ProxyCompiler,解决 tomcat 丢失 CLASSPATH 导致的代理编译异常

4.8-19:改进 ProxyGenerator,解决单一数组参数方法无法被代理的问题

4.8-33:解决 AopFactory 在某些条件下的循环依赖注入无法保障单例的问题

波总的质量把控是真的强!希望波总后期录制俱乐部视频时,给大家讲讲质量把控的经验!


评论区

山东小木

2020-08-14 11:53

这个视频教程完美阐述了 JFinal是如何通过极简设计层面已经避免了更多BUG的出现,点我查看视频阐述

冰雨

2020-08-14 14:00

@山东小木 设计是一方面,质量把控也是很重要的方面,设计可能不是每个人必需的或能做到的,但是质量把控确是应该需要学习和掌握的

JFinal

2020-08-14 21:24

@冰雨 jfinal 有一套把控代码质量的方法,大致有:
1:极简设计是根本。好的设计可以将代码修改、新增功能都控制在尽可能小的范围内,每次只需要控制一个小范围的代码质量即可。 想想反面情况: 不好的设计牵一发而动全身,这种代码,哪都不敢动它一下,改了某个地方,另一个地方或多个地方冒出来 bug

2:对代码变动、新增的地方,使用 debug 的方式来测试。 每一次测试通过在 eclipse 中手动修改变量的值,让代码覆盖每一个分支,确保对代码进行全覆盖式 debug 测试。 很多人不知道 debug 功能可以动态修改行动中的变量值

3:复杂代码写两次。 有些功能很复杂,涉及各种场景、情况,第一次写的时候很可能不是最优代码,等过了一段时间以后,脑子里很可能冒出来更好的写法,最近的一个典型例子是:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/template/stat/Compressor.java

上面的 Compressor 压缩功能,第二次写出来的代码即简洁又高效,功能还比第一次的要强大

4:提交代码时,利用 git 或者 svn 的代码同步功能,细心对比,最后再看一遍是否有问题

5:jfinal 新版本先在公司内部项目以及 jfinal.com 官网试用,试用一段时间,看一下日志文件,是否出现了异常,确保没有问题以后再发布到 maven 中心库供同学们使用

你可以访问一下 https://jfinal.com/a/a/a/a,会发现最新版本的 jfinal 总是我自己在使用,我用着没有问题以后再让大家用上最新版。

开源作者本人第一个使用,这才是有道德、负责任的做法。

而不是用开源出来让其他人帮忙测试,测试没问题以后再开源作者自己使用。

JAdmins

2020-08-17 09:30

playsex

2020-08-17 09:55

SuperEric

2020-08-17 15:58

小蜗牛

2020-08-18 09:22