看到讨论平台的很多,我觉得软件技术的变革和改进,都是为了需求而改变的,可以说需求驱动了软件开发方法和技术的变革。
在以前,我一直就有一种思路,把软件的业务部分和技术部分分离开,做业务的业务专家,不需要知道ajax、spring、ext,oo的概念,总之,过去的,现在的,未来的流行技术都是不需要知道的。他只需要对终端用户的需求去进行描述,我需要什么,比如我需要一个ig的界面,需要一个表单录入哪些信息,需要做哪些校验,这些数据该做什么样的处理,应该怎么对这些数据进行测试,流程应该怎么流转。
通过业务和实现分离,让业务专家甚至是客户本身就能拥有定制业务的能力。
而这些描述是受限制的,尽量地满足最佳实践的,比如如果你描述客户需要一个列表,那么ok,你可以描述按什么检索,按什么排序,一页显示多少行,数据从哪里取(这里直接写从哪张表里取,系统自动转成o/r mapping,生成所需要的pojo和各种配置文件,业务专家不需要知道什么是o/r mapping),是否支持锁定列等等。用最容易理解的参数描述,描述出这一个列表的各种特征。然后系统进行翻译,生成可以执行的oo代码。这个好处就是生成的UI界面非常好,因为我们专门有人研究UI这一块,都是按最佳实践来的,而业务专家本身不需要知道怎么实现的,只需要按预先设定好的模型参数填进去就行了。唯一的缺点就是,界面只能有几种,业务专家本身是不能发挥他的想象力的,只能把需求提供到平台组,加以改进,但是这个缺点的好处是,生成的界面很统一,而且是最佳实践,一个地方学会了,就都会了,而且没有致使的缺陷,业务专家所能提的,无非是一些锦上添花的UI需求,有更好,没有也不影响使用。
我在一个大客户那边得到过验证,效果非常好,客户的信息化部门,本身对自身的业务很熟,受限于软件方面的知识,他们年龄都大了,不愿意再深入到技术里面,这样通过我们给他们提供的这种分离机制,他们可以很轻松地把权限定制好,把流程定制好,把每一个节点的展现定制好,然后一运行,整个系统就ok了,整个过程他们不知道什么是oo,不知道继承,不知道多态,到了最后,都是客户自己在定制啊定制,我们因为业务不熟悉,已经都快加不进去了,除了在底层进行支持,比如把客户定制好的要求转成最优的ui界面,让客户使用时能感觉到非常地舒服,剩下的工作就等着数钱了,而客户对我们的评价还非常高,为什么呢?因为他们定制出来的业务,基本不出错,很稳定,什么样的UI有什么样的功能,都是确定的。
但是,我在这里遇到了一个最大的问题,就是我觉得我这是一种MDA,模型驱动,跟omg的概念很象,但是这跟omg的模型不怎么搭边,而且模型也没有用uml,因为对业务专家来说,让他们学uml,不如我们自己定义的一套说明容易理解,我这个思路放在mis领域里却非常好用,除了快速、稳定以外,客户本身只要能够理解数据库里的表和字段的概念,再懂业务,一天就能上手,一周就能自己定流程,定菜单,定界面,定权限等等,在我们划好的这一亩三分地上盖起高楼,一但盖错了,立马重新翻盖,速度非常快,以功能点为例,比在一个基础框架下面coding实现出来的功能效率要高3倍左右,关键是不用程序员,节省成本,客户自己还愿意干。
大家觉得这种思路有哪些问题,有哪里需要改进的地方?因为我们是经过特大型国企这样的客户验证过的,模式确实成功,请大家不要再以这个不oo为理由进行攻击,我们转换器转换以后的代码,是oo的,包括反射,aop,ioc,o/r mapping、ajax、ext等好用的都用到了,甚至junit我们都考虑到了,测试代码自动生成。
分享到:
相关推荐
所以准确的讲:FCG不是个代码生成器,而是用来开发代码生成器的基础平台. <br/> FCG相比其他生成器,有很多不一样的东西.下面列出FCG几点特性. <br/>1. FCG采用plugin设计体系,一个具体软件架构的生成...
为解决这一问题,本文提出了一种基于MDA(模型驱动架构)的分布式对象模型框架代码生成方法。 MDA是由对象管理组织(OMG)于2001年提出的软件开发框架,以模型为核心,贯穿整个软件开发过程。MDA的主要思想是先建立...
【Velocity代码生成器】是一个基于Struts2和Spring框架的工具,主要用于自动化JavaEE应用程序的开发过程。这个工具利用了Velocity模板语言,大大简化了代码编写工作,提高了开发效率。Velocity是一个快速、轻量级的...
3. **Velocity**:Velocity是Apache的一个模板引擎,用于生成静态网页或者其他动态内容。在代码生成器中,Velocity被用来解析用户定义的模板,生成符合特定规范的代码。 4. **UML(统一建模语言)**:UML是一种标准...
"mdamdamdamda"可能是指MDA框架的一个具体实现或者项目代号,但具体细节未在标题中给出,所以我们无法提供更深入的信息。不过,我们可以探讨一下AndroMDA,这是与给定的压缩包文件名相关的MDA工具。 AndroMDA是一个...
MDA(Model-Driven Architecture,模型驱动架构)是一种软件开发方法论,它强调通过高层次的模型来描述系统,然后自动...对于希望优化开发流程、提升游戏开发能力的开发者来说,MDA是一个值得深入研究和实践的领域。
总结来说,SiloMDA是一个专注于MDA框架的开发环境,它涵盖了模型创建、转换、集成开发和代码生成等多个方面,旨在提高软件开发的效率和质量。通过利用模型驱动的方法,SiloMDA降低了软件开发的复杂性,使得开发者...
MDA由OMG(Object Management Group)制定,其目标是提供一个标准化的框架,使开发者能够以一种独立于平台和技术的方式描述软件系统,然后自动或半自动地生成具体平台的代码。 在MDA中,模型被分为三个主要层次:...
本文提出的基于MDA的方法为开发多智能体系统提供了一个系统化的过程。通过使用MAS-ML和UML等建模语言,并通过明确的模型转换规则,可以有效地管理和控制MAS的开发过程。这种方法不仅有助于提高系统的可维护性和可...
标题"基于MDA的javaEE web应用快速开发平台"表明这是一个专门针对Java EE Web应用的开发环境,利用MDA的理念和工具,旨在加速应用程序的构建过程。MDA的核心概念包括元模型(Meta-model)、模型(Model)和生成器...
Acceleo is a code generator transforming models into code (MDA approach). This download is the developer's SDK. It contains the runtime plugins, source and documentation for developers that want to ...
【MS-MDA 脑电情绪识别代码】项目是一个基于多源域跨受试者(Multisource Domain Adaptation, MDA)理论的脑电信号处理与情感识别系统。这个项目旨在利用脑电(Electroencephalogram, EEG)数据进行实时或离线的情绪...
这是MDA的一个重要特点,可以显著减少手工编码的工作量,提高开发效率。 MDA不仅适用于大型企业级应用的开发,对于中小规模项目也有其适用之处。通过MDA,开发人员可以更专注于业务逻辑的实现,而将技术实现细节...
MDA的实现依赖于特定领域的建模语言(DSL),这些语言能够通过代码生成器直接转换为编程语言代码,如Java或C#,或者转换为平台特定的配置文件,如XML。 本案例研究的主题是“一次编写,多处部署:面向性能的MDA案例...
5. **模型到模型(M2M)和模型到文本(M2T)转换**:MDA中的转换过程可以分为两种类型,M2M是从一个模型转换为另一个模型,而M2T则是将模型转换为源代码或其他文本形式。 6. **标准和工具有关**:MDA的实施离不开一...