jxTMS:低成本快速定制的业务系统个人开发平台。
开发模式
中小企业的竞争优势集中于核心人员,这些人员既是企业价值链的核心、也是企业运作的驱动引擎,也就是说中小企业一方面需要核心人员创造核心价值,另一方面则还依靠核心人员来驱动并加以控制。所以笔者所观察到的业务系统在中小企业的基本价值就在于两点:
-
业务控制:将关键价值链规则化运行,通过在关键环节进行干预控制,可以保证业务不失控。在这方面通过合规性审查,使得核心人员以较少的精力对业务实现有效的控制
-
态势呈现:企业现在的状态如何、问题在哪,核心人员需要大量的业务数据来辅助自己进行判断,才能采取进一步的行动
即中小企业最值钱的就是核心人员的时间【精力】与判断,业务系统对于中小企业的价值在于节省其控制业务的精力、辅助其快速形成对企业问题的判断。
而阻碍中小企业应用业务软件的最大障碍就是中小企业的业务具有高度的灵活性,需要通过不断的试错来发现机会、打造竞争力,所以其业务过程快速多变、非常不稳定,这就需要业务系统能快速随动业务的变化。而传统的业务系统开发模式则难以低成本快速随动业务变化来提供上述的两个价值点,所以部署后因为过于刚性而很快失去客户价值。
也就是说,对于中小企业的业务系统来说,不能动态定制则无价值、但动态定制的成本难以接受,所以只能功能化、点状化、辅助化,无法在核心业务过程实现全面支撑,自然就没有价值可言。
所以笔者开发jxTMS的核心思路就是:如何低成本而快速的随动业务变化。关键就是要解决低成本定制问题。
笔者曾带过皖北某高职一个自招班的java实训,因此深刻认识到推高开发者门槛的就是越来越复杂的抽象模型,绝大多数的高职生因为数学基础以及抽象思维、形式化等方面的阻碍,是不可能在短时间内理解现代编程的概念和模型的,更不要说能迅速掌握并运用了。这就导致了一个班能有10-20%的学生有能力完成初级编程任务就很不错了,更谈不上开发一个独立的业务功能了。而这个程序员行业的的高准入门槛,自然就成为低成本开发的首要阻碍。
所以笔者开发jxTMS的首要目标,就是最大限度的降低jxTMS编程模型的抽象度:
-
jxTMS的python代码当然是按面向对象来编写的,但整个业务代码的开发没有任何面向对象的概念,jxTMS的编程是事件驱动模型:用户点下按钮如果是想显示一个新的web界面则触发一个prepareDisp事件,如果是想执行某命令则触发一个cmd事件。开发者不需要理解什么是面向对象编程,而只需按规定格式完成事件绑定,jxTMS会自动完成所有关联操作
-
jxTMS的前后端交互是函数式:self.getInput(varName)即获得用户在前端web界面的相应控件中输入的值,self.setOutput(varName,value)即向前端web界面的相应控件写入某值
-
极度简化的数据库操作:定义一个数据类就自动同步创建了同名数据表、自动完成python对象和数据行的映射、python对象属性的操作自动更新到数据库中、利用列表同步的继承实现极简单的数据表结构调整、提供类sql语句可灵活的查询自定义的数据表
-
jxTMS的代码组织是扁平的模块,特定目录下的一个子目录就是一个代码空间,该子目录下的每一个子目录就是一个模块,一个模块可以由5种特定的定义文件组成,而这些文件全部都是文本文件【包括两个py文件】,对这些文件修改保存,直接点击【代码管理->重新加载】的按钮就可以不停机而重新加载修改后的模块了,然后就可以直接试用刚刚的修改了
-
jxTMS的基础功能已经内嵌而且大幅度的简化,如分页查询,如果不需要条件搜索则不需要编写任何代码即可自动完成,而即便要执行条件查询其编程也就是重载两个特定的函数根据用户输入设置查询条件而已;如最常用的审批流程等,编码部分已经简化为一个审批节点就编写两个函数,一个判断要不要执行本节点,一个用户点击了【同意】或【拒绝】按钮后决定如何处理,而大部分节点还都不要执行这两个函数
-
jxTMS的同时强调以定义来代替编程,所以jxTMS开发的主要工作量就是进行各种定义,还都是基于文本的定义,还有相当一部分还可以用汉字进行定义。这些定义,包括web界面、数据表【数据对象类】、数据查询、【简易】流程、业务规则、关注点、统计等。静态的固定语法、确定的定义目的远比动态的代码更容易理解。关键是,所有这些工作都可以一个人迅速完成,非常有助于开发者理解整个业务功能开发的工作逻辑,帮助其快速形成开发能力
通过多年的实践,笔者认为:开发成本决定于逻辑复杂度。所以jxTMS的设计哲学就是:让一切简单化。目标是让最终的复杂度只剩下业务逻辑自身的复杂度。
基于上述认识,用jxTMS来开发业务系统的开发模式,笔者想定为:
-
月租型开发服务模式,即不仅仅只是SaaS的软件使用租用,还是现场定制开发的、逐步升级的定制化软件租用
-
渐进式迭代开发模式,不再追求一次成型的软件整体购买,而是根据用户目前最关心的问题,逐步开发迭代升级,边使用、边开发新功能、边升级老功能,以确保业务系统随动用户的业务变化,如此才能充分发挥信息系统对业务的支撑能力
-
即说即写即试的交互式开发模式,jxTMS强调的是低成本快速定制,对客户提出升级需求后能进行试用的最长时间间隔的设计指标为:绝大多数的简单功能调整应在15分钟内即可完成修改可以让用户试用;较复杂的功能调整是隔天试用;即便是完整的功能模块,包括需求分析在内最慢也应在一周内让用户试用。然后根据用户反馈,再进行前两个层次的修正迭代
概括的说,jxTMS是基于低成本快速迭代、用户参与开发、边用边开发的思想研发的。为了解决核心的低成本定制问题,其开发门槛设定在相应专业高职毕业生经针对性培训后即可在系统分析员的指导下独立完成整个业务功能模块的开发。
目前,jxTMS已经打包为云服务器镜像,开发者开箱即用:
jxTMS-腾讯云市场