快速开发平台,重点在于快,要快无非就是两种手段:

1、生成代码

2、重用模块

详细看如下的分支图

就第一种情况生成代码来说,是每个快速开发平台必备的,基本上所有的快速开发平台都能生成CRUD,从jsp页面到java代码都可以,当然能不能生成直接可用的代码就似乎平台的功力了,有些是生成后,

需要手动去调整某些东西才能运行,例如,一些表单的验证,或者一些需要配置文件,因为你生成的CRUD,可能是需要在某个配置文件中,插入某段配置,所有往往这个也需手动去调整。

但这里有重要一点,CRUD都是属于比较规范的代码,那不规范的代码如何生成呢?例如,一个登陆过程,或者一个报表统计的过程,这些非规范的代码生成在后面我会说到。

这里先继续说一下重用的另外一个手段:重用模块,很多公司都有自己的一套所谓的框架,这个也是重用模块的一种常见手段,基本上就是提取出共用的功能函数或者必要的过程段,

然后加以整理,从而形成一个通用的模块集。

例如,通用的权限管理平台等,或者通用的方法库等,这些整理出来后,一般情况下往后的项目之需要进行使用即可,而不需再重新开发,从而达到快速开发的目的。

继续说一下如何生成代码,这里还是说生成的是规则的代码,类似CRUD这些的代码。要实现生成规则代码的目的,可以有很多方法形式,

常见的有如下三种:

1、居于浏览器做一个web平台,然后在web平台里面可以针对某些表或者pojo等,通过界面配置来生成代码。

2、可以居于eclipse体系之上做插件

3、当然可以自己写一些桌面应用,在.net 领域比较常见些,java领域也有人是通过dephi做桌面应用的 快速开发工具的

当然还有第4种,就是写个main函数作为入口,然后读取相关模板和配置文件进行生成规则代码,连界面都不要了。

这三种方式,我就不多说了,下图分别对这三种方式的优缺点总结,当然这个是我个人的见解。

以上基本上都在说如何生成规则的代码,那不规则的代码,如何生成呢?有必要生成吗?

嗯,对于第二个问题,我们先搁置,这个是不是我写个文章的目的。

我重点说一下应该如何生成不规则的代码。

先假设一个经典的案例:

一个登陆的过程吧:

1、用户先是打开登陆页面,然后输入用户名、密码

2、然后按登陆按钮

3、服务器端程序,接收到请求,然后从request中取出 用户名和密码

4、然后使用用户名和密码,进行数据库查询

5、如发现的有对应的记录,则转向成功登陆的页面

6、如果没有对应的记录,则转向登陆页面

以上的过程中,服务器端运行的程序段,我们可以这样去划分层次:

1、接收请求(用户名、密码)

2、执行逻辑(数据库查询)

3、结果返回(根据查询的结果,从而转向两个不同的页面)

那么我们怎样来生成以上那段不规则的代码呢?

嗯,需要把上面三个程序段抽取为三个模型来处理,

第一个模型:接受参数模型

第二个模型:执行逻辑模型

第三个模型:返回结果模型

既然有了模型,那如何为这些模型赋予相关的属性呢?从案例出发,

接受参数的模型,最重要的属性,当然是 接受怎样的参数了,然后这些参数应该定义为怎样的类型了。

可以这样设计这个模型:

接受参数模型{

参数列表{参数名、参数类型;参数名、参数类型;.....}

}

那执行逻辑模型呢?在这个案例里面,执行的逻辑是,把接收到的用户名和密码拿出来,然后去查询数据库表,再返回结果,

如果按照我们写代码的习惯,会把这个过程独立成为一个方法,然后用户名和密码就是输入的参数,而查询的结果,我们可能使用int来返回,

返回1,就代表是有,如果返回 0 就代表没有(当然,你使用布尔类型也可以,这个不影响模型的抽取)。

那么这个模型可以设计如下:

执行逻辑的模型{

输入参数{参数名、参数类型;参数名、参数类型;.....}

返回参数{参数类型}

}

这样一看,貌似是缺乏些什么?那我所要执行的真正逻辑在哪表示了?还没有包含啊?对的,缺乏这个,那在这个模型里面,如何表示?嗯,要不,我们先从一个简单的角度去考虑:

假如你已经有一个登陆方法了,你只需要传入用户名和密码,就能返回1表单有该用户,0代表没有。那么以上的模型就可以表示如下:

执行逻辑的模型{

输入参数{参数名、参数类型;参数名、参数类型;.....}

返回参数{参数类型}

执行的方法    //什么包下什么类什么方法

}

返回结果模型呢:

返回结果模型,这里根据不同的结果返回不同的jsp页面,不妨,我们就用一个jsp模型,来代表返回结果的模型

如果我们写java代码,一般都是这样写:

结果不同就forward不同的页面

然后在forward页面前,我们可能要将一些要输出到jsp页面的变量设置的到request中的Attribute中去,例如,如果我们这个案例中,如果没有该用户的话,返回的是登陆页面,

我们需要在登陆页面中显示“你输入的用户名或者密码有误”,这样一个反馈信息给用户知道。

所以,我们的返回模型、也就是jsp模型可以这样设计:

返回结果模型(jsp模型){

返回参数{参数名、参数名....}         //可能是返回多个

jsp页面的路径     //需要转向的jsp页面路径

}

有了模型后,那该如何生成代码?模型只不过是描绘这一个请求处理过程的细分单元罢了,嗯,那怎样生成代码呢?

模型怎样去描绘这个请求处理过程呢?

这里需要一个编辑器,然后在这个编辑器上面使用模型来描绘这个过程。例如,如下的登陆截图

要实现这样一个编辑器,有很多技术可以实现:flex、gef、gmf等,或者你自己写个swing拖拽器也可以。。

在编辑器里面用模型描绘完这个请求处理过程后,怎样生成代码?

生成代码比较简单,过程其实上和生成CRUD是一样的,都是读取某些信息,然后使用模板引擎freemarker或者其他的,然后套用到某个模板上面,即可生成对应的代码了。

但这里得注意,模板?那这个模板应该怎样写呢?

和我们写普通模板一样,先是写可以跑通的程序,然后把非公用的属性挖走,就是模板了,

例如,CRUD的模板,我们是从CRUD程序里面挖走 哪个表,什么字段这些,当然有时候是必须加些判断来控制代码的生成。

这个请求过程的模板,也是如此,先按 模型思想,就是 “接受参数”模型、“执行逻辑”模型、“JSP”模型,写出程序来,跑通后,

再把非公用的东西挖走,例如,接受什么参数啊,执行什么方法啊,转向什么页面啊等挖走,就成了模板了。

实际上要让快速开发平台能生成 非规则的源码,重点是在于,对请求处理过程的模型抽取,每个公司都有自己的抽取方式,就例如上面的案例,但始终都离不开 “合理的模型能组合成为一个完成的请求处理过程” 的原则。

上面的 登陆过程图实际上是最简单的一种请求处理过程抽取。

你在开发项目的时候,往往会需要返回ajax,,那就多加一个ajax模型吧,,可以!

有时,可能是你底层的方法库是没有的,那需要自己手动写一个方法,,然后这个方法我要嵌入到这个请求处理图中去,,那就多加一个自定义方法的模型吧,,可以!

。。。其他情况,依然这样处理。

事实上,要抽签合适的模型需要一个循序渐进的过程,但可以参考一些现有的开发平台,他们已经抽取好了,然后根据他们的模型,按照自己的思维、技能进行调整,得到自己想要的模型集。

模型的抽取是按照每个人的思维方式不同而不同,因人而异,没有标准化。

当然你也可以利用这种生成非规范代码的思想来开发工作流程序,也可以用来开发工控的一些图形化编程工具,或者是电信行业的ivr程序都可以。

小结一下:

要生成非规则性的代码,处理过程无非就是,先写一个可以跑通的程序,然后在这个程序里面把异性的元素抽取出来,变成模型(可以理解为一个变量),然后生成代码的适合,就是将这个变量赋值,

再和原来被抽取的程序段结合,即可。

关键的地方是在应该怎样抽取异性元素才是更适合,另外,一个关键点是抽查出来的异性元素(模型)怎样赋值的问题,这需要一个工具,才能更好的把赋值和生成代码集合起来。

后话:

当然在快速开发平台中,生成代码,不管是规则或者非规则,都只是部分功能而已,还有其他很多功能,所以,我个人感觉快速开发平台最好能依赖eclipse体系而已建立,以达到重用eclipse系统本身某部分功能的目的,从而减少开发量。

深入浅出教你做一个快速开发平台相关推荐

  1. access订单明细表怎么做_快速开发平台(进销存教程)--必须在字段采购订单明细表.完成数量中输入一个值...

    时 间:2014-04-05 21:20:52 作 者:摘 要:快速开发平台  主表 子表 Tmp表 正 文: 一.问题描述 学员@防城港-KingめArthur在做采购订单时,出现错误提示'必须在字 ...

  2. 简易快速的开发,需要一个快速开发平台来支持

    力软快速开发平台是一款基于智能化可扩展组件式的软件系统项目,是一个带有代码生成器的.net平台,可以帮助解决.net项目中80%的重复代码.既能为公司节约人力,提升开发效率,又不失灵活性. 平台由众多 ...

  3. openjweb1.8 java web应用快速开发平台产品白皮书

    因图片较多,需要图片请到资源中下载,不需要资源分.           OpenJWeb(1.8) Java Web应用快速开发平台   产品白皮书               编者:OpenJWeb ...

  4. 最近在推广一款快速开发平台,C/S架构中最好的快速开发平台

    度量快速开发平台,是度量科技自主开发的基于SOA面向服务的应用系统开发平台,可以方便快捷的搭建企业.医院.工厂.学校等行业的企业级运营管理平台.平台采用.net.技术构架,webservice服务搭建 ...

  5. 敏捷开发思想的终极应用:软件快速开发平台

    如今,随着信息技术的不断发展,互联网进入了一个相对繁荣的时期,而企业要想跟得上潮流,信息化建设必不可少,但是面对眼花缭乱的软件开发公司,选择成了难题. 传统软件开发 传统的软件业务更多的是走定制开发的 ...

  6. 前后端分离的企业级微服务多租户系统架构,快速开发平台!

    正文 大家好.我今天,推荐一个快速开发平台系统项目.猿哥第一次使用就有点上头,爱不释手,必须要推荐给大家. 上次是谁要的快速开发平台系统项目啊,猿哥帮你找到了. 这是我目前见过最好的快速开发平台系统项 ...

  7. 推荐一款快速开发平台,web中最好的快速开发平台

    力软快速开发平台是力软自主开发的基于SOA面向服务的应用系统开发平台,可以方便快捷的搭建企业.医院.工厂.学校等行业的企业级运营管理平台.平台采用.net.技术架构,webapi服务搭建. 力软快速开 ...

  8. 一个中心、三大原则,阿里这样做智能对话开发平台

    作者 | 阿里巴巴高级算法专家  李永彬(水德) 整理 | 一一 出品 | AI科技大本营 在阿里巴巴的X峰会上,阿里巴巴-智能服务事业部高级算法专家李永彬(水德)分享了小蜜智能开发平台的构建,他围绕 ...

  9. 如何设计一个API快速开发平台?

    点击上方☝码猿技术专栏 轻松关注,设为星标! 及时获取有趣有料的技术 来源:toutiao.com/i6914469326074479108/ 在我之前谈API网关的时候曾经谈到过快速开发平台,即将A ...

最新文章

  1. 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 D.寻找-树上LCA(树上a到b的路径上离c最近的点)...
  2. 【神经网络】线性模型非线性模型,感知机与神经网络
  3. Android 串口开发,发送串口命令,读卡,反扫码,USB通讯,实现demo。——持续更新
  4. python怎么设置代码执行时间_python 代码运行时间获取方式详解
  5. vsftpd常用操作
  6. 软件汉化工具:eXeScope
  7. 面向对象编程方法-抽象
  8. Android网络请求通信之Volley
  9. Java基础:List集合和Set接口
  10. LabVIEW编程LabVIEW开发 固高运动控制器例程与相关资料
  11. Visual Studio Code配置Salesforce Apex开发环境
  12. 关于火车票12306
  13. 流落在帝都的那些80后北漂IT人,你们的未来在哪儿
  14. 基于MATLAB的TODA定位算法的仿真
  15. php 制作在线音乐网站,音乐网站程序,手把手教会你做音乐“网站”
  16. 一比二购增加您指定商品降价时,给您发送邮件通知的功能
  17. 少儿编程scratch一级考试试卷真题及讲解(一)
  18. 计算机显卡又叫什么,显卡是什么?又有什么作用呢?
  19. svn报错:Cannot negotiate authentication mechanism
  20. 计算机系全国第一大学,中国计算机专业最“牛”的4所大学,清华第1,当之无愧...

热门文章

  1. 前端 domparser未定义怎么解决_统一异常处理到底应该怎么做呢?
  2. 12011.linux之看门狗应用开发
  3. osgearth_annotation示例
  4. python 列表推导式csv_Python 列表推导式
  5. android elf 加固_Android常见App加固厂商脱壳方法的整理
  6. STM32 I2C通信(读写eeprom)
  7. 内存的工作原里(二)
  8. python多线程协程配合使用_多线程配合协程
  9. 【设计模式】第四章 工厂模式
  10. Spring Boot-面试题