jxTMS是以低成本快速定制为核心诉求的、SaaS模式的业务软件二次开发平台【可参考jxTMS的HelloWorld】。
jxTMS是以java开发的,向开发者提供的定制内容主要包括:
-
用户的web界面:用文本一行定义定义一个控件,内置了二、三十种常见的控件,可以快速的完成用户界面定义;再利用jxTMS的热机刷新【hotUpdate】机制即可简便的随时修改随时查看到界面的显示效果;用户读写控件值都只需要一条命令,从而大大简化了用户交互的设计与开发工作
-
用户的业务逻辑:python代码编写。jxTMS提供了丰富的内置功能模块和强大的基础环境,大大降低了开发难度
-
数据库中的数据表:文本定义,以jxTMS所提供的数据类声明的方式进行定义。声明了一个数据类,既在python代码中有了同名的数据类,可创建、读取该类的实例对象进行操作,又在数据库中创建了一个同名的数据表,jxTMS会自动完成两者间的关联,并提供了相当简便的ORM能力,从而大大减少了增删改查等数据库访问时的工作量
-
列表查询:文本定义,类sql语法降低学习成本。通过针对性优化,应用最为广泛的条件查询、分页显示这一功能非常简便而功能强大
-
菜单、快捷栏、工具条等对应的动作:python代码定义。由于不需要太多的逻辑处理,所以也算是静态定义。只需要在特定的文件中,声明函数对参数设置属性即可
-
流程:文本定义工作流,只需很少的用户业务逻辑处理需编程。内嵌了强大的流程管控、任务分发机制,内置了流程追溯、现场数据快照、现场数据变动跟踪等审计、核查、追责功能,使得开发一个业务流程的工作非常简便
-
业务规则:文本定义。在需要对业务是否合规进行检查时,不需要编程,而是使用业务人员可读的业务规则。这就便于开发人员和业务人员的沟通,可以将业务人员的业务经验直接纳入到业务控制逻辑中
jxTMS的编程请参考:jxTMS在线编程手册
jxTMS的低成本快速定制体现在:
1、一个工程师搞定web界面、业务逻辑、数据增删改查、流程等开发工作。这就大幅度的提高了开发效率
2、开发门槛低,简单至极的编程模型:事件-响应。而且就两种事件:
-
点击按钮所对应的cmd事件
-
打开页面时装定数据的prepareDisp事件
而开发者想编写哪个事件的响应函数,只需要在该函数前用event修饰符修饰一下即可。
3、笔者信奉的是:好的系统是静态定义出来的。
所以用户开发时70%的工作量是静态的文本定义【界面、数据表、数据查询、流程、业务规则等等】,结果明确、便于审查。
剩下的业务逻辑则是用python编写,简单、容易学、上手快,会的人也多。
4、界面设计简单,一行文本定义一个控件,系统预置了二、三十种常见的控件,声明后设置下属性就可以了。
而在事件响应函数中读写web界面的数据也是简单至极:
#读取用户在web控件中输入的数据
self.getInput('控件所绑定的数据名')
#输出数据到web控件
self.setOutput('控件所绑定的数据名',value)
5、针对数据库的增删改查做了针对性优化。
针对不同应用场景,有多个语句可以直接将数据库中的一行数据映射为python中的一个对象,修改完毕后一条update语句即可将修改提交到数据库中。
一个事件响应函数的所有数据库操作都在同一个数据库事务中,如果出现异常,将集体回滚而不必担心数据库中的数据会出现不一致问题。
数据表的查询也做了专门的优化,显示、定义、查询、点击查看详情等一气呵成,简单而高效。
6、支持热更新【hotUpdate,jxTMS的术语叫做:热机刷新】。
本组织的代码、界面等如果有了修改,直接上传修改后的文件到服务器中的指定位置,然后manager用户点击快捷栏中的【运维管理->重新加载】就可完成功能升级,既不会对系统也不会对其它组织造成任何的影响。
甚至,本组织其他正在使用中的用户都不会有任何的感知【但有可能破坏其连续操作的一致性,所以不建议在有大量用户使用时就做热机刷新,而是到夜间等没太多人使用时】。
7、提供了丰富的日志,可高效定位故障、快速排除bug。
不同组织的日志分成了自己的日志流,开发人员可以直接登录服务器查看本组织的日志输出。
8、已经内置了大量的系统管理相关模块,也会不断提供各种通用的业务模块供用户免费使用。
业务模块的加载与卸载对jxTMS来说,就是将相应的设计文件拷贝到组织的codeDefine目录下,或从其中删除掉,然后做次热机刷新就可以了。
所以欢迎大家提出需求来帮助jxTMS开发通用的业务模块。
9、以后也会想方设法的引入第三方业务模块共用户选择。
欢迎大家利用自己所积累的专业优势来开发第三方模块。
目前jxTMS已经发布docker版本,欢迎大家下拉使用:docker版jxTMS使用指南