企业应用快速开发平台推出的意义(EAFD)

【转】http://ronatona2008.blog.bokee.net/

 

引子:企业级应用快速开发在业界不是一个新话题,对于作者8年多的职业生涯而言,更是一个持之以恒、孜孜不倦寻求解决方案的课题。最近,该课题有了新的进展,在重构企业融资服务的大背景下推出,尤其有意义。

背景

         作者多年来一直从事银行对公融资类产品的研发和实施。在此过程中,很多问题需要思考和改进,归纳了一下,大概有如下几个对于软件活动具有重大意义。

ü   软件产品研发过程中,需求实现的颗粒度保持到什么程度,对于项目实施的意义更大?

ü   软件活动中,应注意哪种资源的积累最有意义?

ü   如何才能做到软件设计的相对通用性?

ü   如何做到对软件产品研发的批量化?

ü   用户需求快速处理的意义?

ü   面向行业的抽象对于批量客户化的意义?

ü   技术上实现低配置无限横向拓展的意义?

对技术的理解

         技术是为了业务实现而服务的。”

         相信这句话,所有的软件工程师都没有异议。因此用户需求是第一位的,能实现用户满意的功能是技术存在的意义所在。而与用户的不睦恐怕都源于技术的匮乏,或者说没有做好充分的技术准备,项目就上马了。

         过分的依赖技术也不可取,毕竟精力有限、资源有限,无限的技术更新将耗费大量的理解用户需求,与用户沟通的宝贵时间,同样不能最大限度的满足用户需求。

         这里,对技术的使用要有一个度字。

对需求的理解

         “需求是按照行业来区分的。”

         这句话是工作多年才能总结出来的。请诸位仔细回购一下自己做过的项目,尤其是有多个行业经验的工程师,用户的需求虽然可以分为不通的模块,但在实现上是否都可以提炼和抽象。从前台展示、前台操作、后台服务等特性进行总结,你会发现,如果你有很好的设计,其实你可以做到相对通用性的。(当然,如果没有做到相对通用,不能说明你的水平不够,而是你们公司没有给你时间,项目进度太紧张了。)

         所以说,在软件实施过程中,一定要抽象总结用户需求。

软件架构模式

         MVC是纯技术模式,应该扩展至业务范畴”

         曾几何时,”MVC”是软件设计先进性的标志,诚然,对于开发人员而言,在此模式的大原则下,业务被一定程度的模块化,面向对象的设计方式能够帮助运维人员直观的理解系统、维护功能。事实证明,后台逻辑和页面操作控制逻辑的过度客户化将使系统过分复杂,控制层和服务层设置页面操作控制函数都出现了业务逻辑代码,以此代码进行再实施将会是灾难性的。

         所以,软件设计模式应该是:功能层(F+服务层(S+控制层(C+视图层(V

软件架构图

宝贵的资源积累

         保证 视图层、控制层、功能层的抽象性,业务逻辑体现在服务层

         伴随着项目的实施,根据不同的业务展现习惯,视图层会越来越丰富;而不同的操作习惯会积累不同的操作定义;因为业务处理要求的不同,服务层也形成了积累。这些积累都需要通过“视图配置”、“操作配置”和“服务配置”录入平台,以便可以通过“功能配置 ”展现系统。

软件实施流程

处理用户需求

         “有了以上的积累后,处理用户需求变得相对简单。”

         因作者多年来一直从事银行对公融资类系统的研发,所以 EAFD1.0 将首先瞄准银行融资业务管理领域,即EAFD平台第一个实现的系统为供应链融资管理系统-SPCF”

         SPCF中,作者分析了企业、银行在此项业务中的需求。

         对于企业而言,其采购、生产、销售、库存、财务等过程需要通过供应链管理系统进行信息化和流程化处理,这样才能有效地分析在企业生产过程中,其可用于融资贷款的标的物,也是银行所关注的,另外,通过供应链信息化后,企业有效的提高了管理水平,节约了成本、提高了生产效率。

         对于银行而言,银行融资种类比较多,针对不同的标的物会产生不通的融资产品,走不同的业务流程。因此供应链融资系统的需求主要体现在数据采集的多样性、审核、控制及流程化审批上。

         于是,SPCF系统中,视图大概分为如下几种:单查询列表视图、双查询列表视图、查询和树混合视图、批量更改视图、流程导航视图;服务除了基础的视图绘画、增、删、查、该外,状态更改服务显得比较重要,当然还有一些其它的业务处理服务,如记账、计算利息等;操作对应服务,当服务客户化了,操作也会相应的客户化。

面向行业,批量客户化实施

         “批量客户化是软件商业化的价值目标”

         商业化是软件的价值体现,批量客户化则是商业价值最大化的途径。面向行业抽象业务服务,用户视图、业务操作,重用快速开发平台中的资源,做到快速客户化。这样既减少了资源投入,又保证了项目实施的进度和质量,保证了商业利益。

动态横向无限扩展

         “动态横向部署,保证了系统访问负载”

         系统采用轻量级架构,保证应用的原子性,可随意部署,发布后即可响应服务,逻辑存储于数据库中。由于系统业务采用面向服务的方式定义,服务脚本存在于每一份应用发布包中,每一个节点的服务响应地位是均等的,系统可以选择某一个或几个节点响应视图绘画服务,然后可以根据访问者的IP或者用户信息分配响应服务的节点,这样,对于服务具体的访问负载可以进行控制,系统可以根据用户的数量和访问习惯,合理的分配硬件资源来支撑服务运行。

总结

         企业应用快速开发平台,可以最大限度的串接每一次软件研发活动,并将研发成果具体化。

         基于软件开发平台实施软件,可以充分发挥程序员的能力,抽象概括业务,形成行业共用服务,支撑批量客户化。

         在软件开发平台上面向具体行业实施软件研发,可以节约成本,控制进度,快速响应用户需求,保证商业利益。

 

你可能感兴趣的:(设计模式,mvc,项目管理,配置管理,企业应用)