在人类发展的历史长河中,人们改造自然界的方法和工具是在不断更新改进着,我们软件界的开发方法和工具也经历着不断演变,从面向过程走到面向对象,再走到现在的流行面向框架,几乎每个稍具规模的软件公司都有自己的框架和组件积累,虽然取得了不小的进步,但是开发速度仍不尽人意,我们要问:有没有可能再寻找到下一个面向,在面向对象、面向框架的基础之上,让软件开发更快速到位一些?
    
    首先肯定一点,面向框架的开发已是非常先进,它是在面向对象基础之上对某个层次或领域共性的抽象,解决了软件共性重用的问题,但是软件个性业务逻辑的扩展依然要写很多程序,依然有很多的开发工作量。全局来看,多少软件公司做的个性业务逻辑是具有共性的,如同行业的业务功能等,也就是说在框架开发者眼中的个性,在行业领域开发者眼中也是有共性的,也是需要共性抽象的,但是行业框架很少有人当作产品来销售或共享,有没有可能把这些行业经验和开发套路积累显示的描述出来,让大家共享呢?
    
    金富瑞(北京)科技在国内知名应用框架平台产品UCML之上,独家推出了面向套路的编程模式和思想,面向套路的编程模式降低了框架的学习成本、消灭了隐性编程知识、轻松完成复杂的业务逻辑编程和过程衔接、能够使行业开发者不断积累和共享的开发套路经验,真正能解决多个软件公司多次重复的做相同行业的开发工作。如此神奇如何做到?
    
    面向套路的编程是在特定的应用基础框架IDE平台之上,预置和新定义特定粒度的编程要素信息(如数据访问对象、领域数据组件、展现组件、业务单元和流程环节等),利用动态解释语言来自动执行程序员的编程动作和衔接各种业务逻辑程序,从而能够把基础层、通用层和领域层等各个层次的业务逻辑单元模型描述出来, 再用软件生产线把多个业务逻辑单元模型串接起来,实现我们新一代的编程模式:面向套路的编程!
    
    下面是面向套路编程的一些基本基础术语,大家可以体会一下:
    
    编程元素
    计算机里的业务是描述人们在现实世界里的行为,一个行为包括如下要素:行为的参与者、行为主题、行为规则、行为处理过程和行为结果。其中行为的参与者、行为主题和行为结果是行为实体部分(可以理解为领域对象);而行为规则和行为处理过程是业务的逻辑处理部分。
    
    编程元素包括业务数据组件、业务的展现组件、数据字段、录入控件、业务的基础框架类对象和其他相关的类、函数等,都可以作为编程元素。
    
    关于框架和组件重用
    应用框架是把众多企业单元的活动共性特征抽取出来,用一组面向对象的基类来描述他们共同的特征和处理过程,这样业务程序在实现时,这些共性编程就不需要再写程序,应用框架完成了共性的重用,组件是独立的功能单元。应用框架和组件描述了业务系统的基础层和通用层,而行业领域业务层,是需要在应用框架基础之上扩展的个性,这些个性在某个行业领域自身来讲也是共性,他们也需要领域共性建模,但是一般框架产品认为领域逻辑是纯粹是个性,要自己写逻辑程序,我们提出了逻辑单元模型的概念来为这些行业领域共性来建模。
    
    逻辑单元模型
    一个逻辑单元模型描述的是一个程序员为了完成某个业务逻辑单元程序(如唯一值检查)所要做的一系列编程动作和过程,逻辑单元模型语言是专门描述程序员编程动作的一门动态解释语言,能模拟程序员日常的动作,如添加函数、按钮、程序代码和挂接事件等程序一切的动作,其次这门语言能访问可重用的或专用的领域组件及它的一些元数据信息,这门语言还有大量的类库和底层函数,以供扩展方便。
    
    逻辑单元的参数主要为行为要素,数据组件、展现组件、数据字段和录入控件等。所以逻辑单元模型实现了行为要素(组件)之间的交互、规则和过程等逻辑程序,逻辑单元模型不是组件,组件越多、功能越强,只能说开发独立功能单元的工作量会小,但是代替不了组装的工作量,逻辑单元模型是在面向对象、面向框架基础之上进一步发展出来的,重点解决组件和组件之间如何逻辑衔接和组装的逻辑编程问题,而逻辑编程能力高低也是我们历来衡量一个程序水平和能力的重要依据,而逻辑单元模型的提出,会使普通编程人员轻松编写出复杂高难的逻辑程序出来的。
    
    软件生产线套路
    一个业务模块是由多个逻辑单元组成的,我们把多个逻辑单元模型按照一定的线路组装在一起,就形成了软件生产线。用订单模块举例来说,会包含如下逻辑单元:公式程序、控件级校验程序、表单级校验程序和提交后修改库存等,一个订单模块的软件生产线就会包括完成公式程序、控件级校验程序、表单级校验程序和提交后修改库存程序的一系列逻辑单元模型。程序员在使用生产线的时候,只需要按照步骤打开逻辑单元模型,输入参数,就可以得到想要结果程序了。
    
    软件生产线的本质是在编程要素基础之上,能够完成各个层面(基础层、通用层和行业领域层)的编程套路,是把团队的成功经验和隐性知识模型化、套路化,而不需要每个人都去花费大量时间去摸索已经是已知知识的经验和套路。
   在团队内部可以把知识套路化、模型化,打破软件公司的界限能否也做到知识经验共享呢,就让新时代验证吧!