代码生成器不等同于业务开发平台

来源:互联网 发布:数组提示需要class 编辑:程序博客网 时间:2024/05/01 15:36

代码生成器比较简单,要做的事情,就是定义模板,然后通过某些数据来源(表,pojo等)来组合成一些集合或者变量的定义,然后用这些定义放到定制好的模板文件里面就ok了,剩下的事情就是模板引擎的事情了,大致都是应用于增删改查、分页(当然,你可以定义一些配置文件的模板,顺便连这个也生成了),如果更复杂些,可能你会弄几套模板,生成不同框架、不同样式的东西。

我说代码生成器简单,因为:

     1、技术简单,用到的东西就是模板引擎 

     2、业务性简单,都是些固定的业务(增删改查等,当然你弄个登陆的模板也可以,但生成的东西只能作为项目的初始启动时候使用)

     开发一个业务平台则非常困难,业务平台出发点,是提供一个完整的从开发、测试到工程的发布,以及维护的平台,其中规则的代码生成器(上述的代码生成器)在这个完整的平台里面,已经是很微小的模块了(只有表维护的时候,才用得上)。业务平台既然是提供一个完整的开发、发布和维护环境给项目,那么大致需要满足以下功能和要求:

1、可以在你这个平台上面创建你这个业务平台所能识别的项目

2、可以在你这个平台上面发布项目

3、既然是开发,那么需要支持版本管理(cvs、svn等)

4、既然是开发,那么就需要调试(除了debug代码外,最好能提供一个图元基本的流程调试功能,按照图元一个个的走,直观)

5、既然是开发,那么需要pojo的导入啊(业务平台很难重用现有的pojo工具,所以你得自己写一个)

6、既然是开发,应该有快捷的模块能生产表数据维护的流程、页面等

7、既然是业务平台,你不可能再让开发者一行行的敲打代码来实现逻辑吧?目前的常见的业务平台都用可视化的流程图来开发业务逻辑,那么你得弄一个可以拖拉的编辑器,来可视化的开发流程

8、居于7,你的可以拖拽的流程脚本,怎样让web容器所识别和运行?要么你底层写一个解析器,web启动的时候,加载这些流程脚本,然后运行的时候,进行解析运行,要么,你得想办法让这些流程脚本编译为代码,所以你还得写一个流程解析器(包括解析运行和编译为代码)

9、业务是多形式,多变化,不定性的,你的流程图可以灵活反应吗?能可以满足所有的业务吗?不能满足的时候,你又需要提供怎样的扩展机制来满足呢?这里涉及到很重要的一个环节:对业务模型的提取,这个是最难也是最重要的,影响到整个业务平台的可用性

10、居于8,生成脚本后,不管是最终是居于解析脚本解析运行,还是编译为代码,这些还得居于一个底层(好像有点难理解,但想想,假如你生产的是ssh框架的ava代码,那么你的代码还得引用spring、hibernate等的api吧,但如果直接引用api能方便组合这些逻辑吗?肯定不可能,你还得居于这些mvc框架之上,进行整合,然后对流程提供更高级别的API,能让这些流程可以串起来运行)

11、居于10,既然需要底层框架,那么这个框架应该怎样去弄呢?抛开现有的mvc开源技术,完全自己写吗?写出来的东西可以稳定吗?能否真的能写出来?采用现有的流程框架,又有新的问题,这些框架组合起来,只适用敲打代码,手动配置配置文件使用,你想拖拽几下流程,就能完成从代码到配置的工作,视乎不现实,想想,可能又要改造下现有的ssh框架了,哇,一想到改造,就得去阅读这些框架的源代码,看看有没有好的切入点,另外,还得担心自己找的这个切入点是否适合,万一下次升级了,你的框架还能继续升级吗?

12、既然是业务平台,那么还得有报表吧,自己写一个?不现实,实在需要太大的功夫,那么用开源的免费的吧,拿过来一看,发现整合到业务平台里面,根本就不合,要么没有好的配套的开发工具,要么这些开发工具和你的业务平台格格不入,然后找,好不容易找到一个和平台类似的,但要人性化操作,还得进行改造,改造什么?业务平台的底层解析器,可以方便支持;业务平台开发工具,可以和这个报表开发工具联合在一起,不过,得有耐心和心理准备(你下载的报表代码,可能多的要命,可能是spring代码的几倍,而且也没有spring代码那么好阅读)

13、有些业务平台,可能还引入了工作流,工作流?又自己写核心和开发工具吗?还是又用现有的,你肯定会犹豫很长时间


14、还得引入ajax方案,自己实现吗?还是用开源的,如果你用开源的又会发现一堆格格不入的问题

15、你的业务平台底层框架,除了可以将一个业务流程走完之外,还得提供很多其他功能,例如,事务控制、安全、监控、缓存、sso、Portal等支持

16、作为一个业务平台,还得有些配套的后台,例如权限啊,监控啊,开发者不可能为每个业务都开发一个权限后台什么的

17、业务平台的定位,内部使用吗?还是作为产品对外呢?所以你得设计你的业务平台遵从那些标准,例如,sca、sdo之类(如果作为对外产品,这个定位很重要,目前国内的soa标准还没定好,如果你选择错了,到时候,soa标准定义好后,发现你这个平台和国家的soa标准格格不入,到时候就难忽悠别人接受了)

居于以上的17个要素,开发一个业务平台确实比较难,风险也很大。。并非几个人能短时间能够实现的事情。

需要跨越:

技术难题,难题实在很多,可以肯定,当你开始开发的时候,你会经常发现Google原来真的没用。

设计理念,这个是关键,你也许会很茫然,不知道怎样可以划分层次和提取业务颗粒才是最合适的。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 热水器热水出口漏水怎么办 热水器上水管漏水怎么办 水管往外漏水怎么办 ppr热水管漏水怎么办 大半夜水闸爆了怎么办 热水器不热水了怎么办 水龙头外皮裂了怎么办 电热水龙头坏了怎么办 太阳能存不住水怎么办 混水阀断裂漏水怎么办 洗澡淋浴头漏水怎么办 马桶有异物堵住怎么办 捷达机油盖漏油怎么办 乳化油臭了怎么办 自行车前叉严重生锈怎么办 自行车链条生锈了怎么办 自行车链子生锈了怎么办 对切削液过敏怎么办 齿轮油加到机油怎么办 机油加液压油里怎么办 液压油里面有水怎么办 加油站双层复合管漏油怎么办 预制屋面板底面渗漏怎么办 焊电焊眼睛疼怎么办 下水主管道篦子怎么办 墙里热水管堵了怎么办 热水管堵住了怎么办 热水管堵塞了怎么办 下水道被油渍堵死怎么办 赛欧车门打不开怎么办 气囊开车门变形怎么办 镀烙金属生锈怎么办 热水器角阀漏水怎么办 淋浴头自动出水怎么办 抽水泵烧了怎么办 压力泵不上水怎么办 chnt电表跳闸了怎么办 应急灯故障灯亮怎么办 消防应急灯不亮怎么办 消防应急灯总响怎么办 车应急灯一直响怎么办