而复杂、混乱则具备庞大的可能率空间

    从 二零一零 年 12 月 18 日第叁个起来版本,到 2013 年 3 月 18 日在
oschina 开源,到前几天 2019 年 12 月 18 日,JFinal 已迭代 9 年。

   
任何系统都有向复杂、混乱方向演化的补助,本质是由于简洁、有序的构造只具有不大的几率布满,而复杂、混乱则怀有宏大的概率空间。

    不过:jfinal 迭代 9 年依然极简、极速。

    jfinal 不要忘初志,对极简的言情,9 年未曾改变。

一、极简这 9 年

1、 极简设计

     jfinal 迭代 9 年时光,顶层布局并未有变过,仍是Handler、Interceptor、Controller、Render、Plugin,这里可以找见那么些早先时期的
jfinal 源码:

         
 https://github.com/jfinal/jfinal/tree/jfinal-1.2/src/com/jfinal

     9 年时段,比较现在时髦版本 jfinal
4.8,顶层布局并未有增添别的复杂度,未有下跌任何有序性。

2、 极简完毕

    jfinal 作为一个应用开采框架,具备 MVC + AOP + ORM + Template Engine
核心模块,不相信任于别的第三方,容积唯有 732KB,代码量不到八万唯有 29003
行:

图片 1

   
这里的恐怖之处在于:这几个代码量比市道上具有相仿遵守的天下知名框架组合低两个数据级,更吓人的那是迭代
9 年从今现在的数据。简洁不足以表述那样骇人据他们说的数量,必需使用极简。

    由于使用极简设计,jfinal 表达为极端轻量级,上一遍新本子特意表述过
jfinal 的轻量级:

         

3、 极简思想

    为啥 jfinal 9 年的上扬,依旧得以保持极简?原因在于 jfinal
具有风度翩翩套特种的极简设计理念。

     jfinal 极简设计观念根源数学、物理多少个世界的十二万分简洁,
比如数学中极简的范例,欧拉恒等式:

图片 2

    欧拉恒等式将数学上 5
个最要紧的常数以最简便易行的办法挂钩起来(常量意味着永久不改变,意味着某种浓烈)。

   
其极简的特色体将来,欧拉恒等式中极少的要素与极少的涉及(要素与涉及十分小概再减掉)。

    极少要素为: 5
个常量,极少涉及为:加法与等于(乘、幂运算本质也是加法运算State of Qatar。

    自然常数 e: 拉长的极端,大量自然规律背后正视的常数。

    常数 PI :圆周与直径的定点关系。

    虚数单位常数 i:将实数轴扩张为复平面,将数从黄金时代维扩充至二维。

    常数 1:  实数单位长度、最小正整数、比 0 大的排位第 1 的自然数等等。

    常数 0: 
最小自然数,最小可能率、非质非合数、非正非负数、正与负的分界点等等。

   
欧拉恒等式只用了极少的成分与极少的关系,就将圆、增加极限、自然数、实数、复数、风华正茂维、二维等等大自然背后的机要规律深切联系起来。

    能不可能让 jfinal
开辟框架也能像欧拉恒等式相同,在设计中仅使用极少要素、关系,就能够满意变化莫测的施用开采须求?

     jfinal 受此启示,提炼出极简设计方法论,值此 jfinal 迭代 9
年之际,jfinal 俱乐部已将 jfinal 极简设计观念通过录制分享出来:

        

二、极速这 9 年

1、 极速之于品质

    jfinal 总体品质一贯好几倍抢先于古板支付框架,早在 3.3
版本发表时已介绍过 jfinal 天下武功唯快不破的强憾质量:

      

    jfinal 的 enjoy 模板引擎的性能越发已经远超
freemarker、velocity、thymeleaf 这类知超级模特板引擎:

      

    即使如此,可是 jfinal 4.8
依旧不罢手,引进运维时编写翻译技术重新将质量进步12.9%,将别的模板引擎甩得更远,以下是 AMD Core i7  2.2G
机器上的质量测验结果:

图片 3

     JFinal 模板引擎 Enjoy 的性质是 Thymeleaf 的 9.68 倍,是 Freemarker
的 3 倍,是 Velocity 的 2.86 倍,由于 Freemarker、Velocity、Thymeleafe
不辅助 byte 方式,以上仅测验了 char 形式,在 byte
格局下质量将超过更加多倍数。

     以上测量试验使用 Java 基准测量检验框架
JMH,测量试验源码:

     注意:Enjoy 的运作时编写翻译技艺还是支撑动态类型,有个别模板引擎在运用
asm/cglib
运营时修正字节码优化质量现在不再扶植动态类型,是举措失当的做法,因为动态类型是现代模板引擎必需的特点

2、 极速之于开采

      早在 spring boot 出生三年早先,jfinal
就动用了嵌入式容器、热加载、零配置、无 XML、API 指引式配置、ActiveRecord
格局等等格局,用来尽量提高开垦效能。

      spring boot 在这八年之后才使用了上述 jfinal
接纳的意气风发部分形式:

      后天发布的 jfinal undertow 2.0
新本子,完成了花销、打包、陈设意气风发体化,不必去下载、安装、配置
tomcat、jetty
那类容器,进一层升高功用节省时间:

      接下去 jfinal 官方社区将全心全意制作 app
生态,在采取规模进一层进级开拓功能,为开拓者带去更加大价值,jfinal
俱乐部正在征集第一群入驻
app,风野趣的同桌能够同步参与:

3、 极速之于理念

    jfinal 自身:

a:布局极简付与极速最基本保证

b:使用立异算法刚烈进步质量

c:代码达成尽大概精练、清晰

d:尽大概少地去分配内存。jfinal 模板引擎多量接受该条件进步质量

e:尽或然不行使 Java
反射机制,一定要选拔时优先思量系统运转时叁次性起始化

f:尽大概让代码的动作缩小,未有剩余动作

g:热门代码珍视优化

    针对客商支付体验的极速更疑似一门艺术:

a:尽或者低的学费

b:开拓进度中尽量低的咀嚼担任

c:开荒体验尽恐怕一连

d:尽大概少的代码量

三、jfinal 4.8 新职能与校正

   千真万确,本次 jfinal 4.8 版本,仍是极简、极速的一而再一连发挥。

1: 使用运行时编写翻译技术重新将质量进步 12.9%,开启情势为:
Engine.set法斯特Mode(true卡塔尔国;

2:优化 FastStringWriter,使用 char[] 缓冲区,防止内部存款和储蓄器分配

3: ByteWriter、CharWriter 递归中的调用优化为 while 循环

4: 优化 #escape 指令,StringBuilder 字符串拼接改为间接向 Writer 输出

    jfinal 4.8 具有 41 项压实与修正,举例新添 slf4j 日志的合法扩展。
限于篇幅在这里不再赘言,感兴趣的同学能够来 jfinal.com 官方网址下载 changelog
文件:jfinal-4.8-changelog.txt

 

ONE MORE THING:

    JFinal
自由开采者联盟第一群项目正在征聚集。为了保证抱有上架项目都是极简设计,俱乐部将全部极简设计思想录制成录制供俱乐部小同伙们下载学习。JFinal
2020
年的靶子正是要扶持俱乐部会员成为自由开垦者,为投机写代码并收获可观的收益:

(文/开源中黄炎子孙民共和国State of Qatar