TABLENAME | 表名 |
TCOLUMNSNAME | 表字D名 |
TCOLUMNSTYPE | 表字D늱?/td> |
ECOLUMNSNAME | 实体字段?/td> |
ECOLUMNSTYPE | 实体字段javacd |
COLUMNSLENGTH | 字段长度 |
COLUMNSNULLABLE | 是否允许为空 |
ISPRIMARYKEY | 是否主键 |
STATE | 启用状?/td> |
DESCRIPTION | 描述 |
COLUMNID | 字段序号 |
LABELTEXT | 字段label名称 |
DEFAULTVALUE | 字段默认?/td> |
CANSEARCH | 是否为查询字D?/td> |
SEARCHINPUTTYPE | 查询呈现方式,文本?下拉?.. |
SEARCHOPERATOR | 默认查询q算W?{于/大于/.. |
FORMAT | 字段昄格式,日期格式/数格式/货币格式 |
CSSCLASS | 呈现css class |
READONLY | ~辑时是否只?/td> |
EDITINPUTTYPE | ~辑呈现方式 文本?下拉?.. |
CREATESHOW | 新增时是否显C?/td> |
UPDATESHOW | 更新时是否显C?/td> |
VIEWSHOW | 查看时是否显C?/td> |
BLANKMSG | gؓI?/td> |
VALIDATETYPE | 校验cd,数/整数/正整?.. |
INVALIDMSG | 校验不通过警告 |
MAPPING | 数据字典,其实是配置下拉框的通用的数据源。比如通常{1:?0:否}?/td> |
MAXVALUE | 最大?/td> |
MINVALUE | 最?/td> |
VALIDATEOP | 校验比较cd |
VALIDATETO | 校验比较对象表达?/td> |
VALIDATEREGEXP | 校验正则表达?/td> |
VALIDATEIF | 校验用条g |
CTABLE | U束表,q?个属性生成下拉框数据源?/td> |
CCOEDECOLUMN | U束值字D?/td> |
CVALUECOLUMN | U束文本字段 |
CCONDITION | U束文本字段 |
我估计很多h看了q些属性后W了Q的,很多么做q。后来发现这样做很不灉|Q无法满需要,其实q个问题很简单,Z么不应用一U表辑ּQognl,el之类的表辑ּ攑֜配置wQ这些属性就灉|很多。siebelq样的品,不也有一些地斚w要些一个脚本,比如escript之类的东西么。想x们天天琢的业务Q不是q些东西么。把它配|到数据库里面,接下来就是怎么生成面的么。我看到的目前大多数的做法是做一个代码生成器Q我认ؓq种做法很不好,代码生成器本w是解决了很多机械活Q但是关键还是你生成的代码本w的质量。没错,你可以用代码生成器去免去上万行代码要手写的尴,我不仅要问,Z么会弄成上万行的代码Q有的hq喜Ƣ吹嘘我写过上万行的Java代码Q我更是嗤之以EQ这不是你的骄傲Q这恰是你的悲哀。上万行的代码,我见q的有两U可能性,一个是java/jsp代码没有重构Q没有封装。二是数据库的设计有问题Q一个表200个字D,面能不复杂么。第一U是架构师要解决的问题,W二U那据是设计时要注意的事情了。扯q了。界面是怎么出来的。至不是用代码生成器跑出来的。接触过ruby on rails 或者grails的朋友肯定知道里面的activerecord/scanffoldl合快速实现crud。不q他说白了也是在生成面+改代码,我还是不喜欢。因为界面确实是太灵zR我的思\分两个个斚w入手:1.装字段Q根据上q字D属性封装成jsp的tag。这个tag通过字段名读取元数据属性,生成览器执行的html,javascript?:所谓页面不久是指定q个面有哪几个字段不就得了。查询页面,那几个字D|查询条gQ读取字D늚查询属性。编辑页面,无非是指定编辑哪些字D就行,在这个基上做一个小工具Q页面就很容易出来。当Ӟ好的框架q要解决一个问题,是变更。怎样能以最的代h做变更。这个我是这么想的。比如说Q某个表删除一个字D,我们可以提供一个工h询哪些页面引用了q个字段Q然后用E序一q删除,其实q个实现也不难,因ؓ每个字段无非是jsp面的一个tag么。大不了用个全文搜烦。用正则一替换完了?/p>
上面是我ȝ的快速实现crud的一些想法。这部分其实是很多重复性劳动的ҎQ把q些工夫省下来了。开发效率高很多?/p>
我这里说的业务可能是一个有别于技术的东西Q有些东西纯_Ҏ靠技术来实现的,用户没有概念Q跟他说也没有用Q比如做接口Q你可能用web service 。用TCP通信{等。这些很多是用户是看不见的?/p>
我认Z个比较理想的业务pȝ应该是业务驾临在技术之上,二者相得益彰。技术需要解决的问题是他有一个^収ͼ能让业务方便的在q个q_上实现。所以我们在做架构的时候要分清楚哪些是业务需要解决的问题Q哪些是技术需要解决的问题?/p>
从业务的角度看技术,我希望业务能够非常方便的在这个^C实现Q不仅如此,我还希望我的业务变更了。能够以最的改动或者不改动p够实现变更。理想的做法我希望业务都是配|进ȝQ我在变更的时候只需要修改相应的配置可以了。当?00%的配|出来也不太现实Q据我所知,在sap,siebel里面的报表是必须开发的。因为报表主要是查询Q查询就非常灉|Q单靠配|能难达到目的?/p>
从技术的角度ȝ业务Q再好的技术加上一个不入流的设计,都ؓ成ؓ教科书上一个很好的反面教材。业务h员需要在对业务的把握上设计Y件?/p>
既然要复用,要能够用配置实现业务Q那配置些什么东西了?那些地方可以配置。这个就是框架要做的事情了。说到框架大家最喜欢议论的就是怎么快速实现crud了。毕竟,一个系l的很大部分都是在做q个事情?/p>
应该说我从事的是企业理软g开发,blog标题也说了。做销售领域,怎么说现在的客户也是在国内很有名气的。现在的公司也专注的在的企业信息化的工作。我们面对的业务主要是销售领域,我们部门也曾l做q一些不太成功的crm。售?售后的领域,x我们天天说的是企业应用我认Z得上了。在我的理解里面Q企业的应用在业务上是一个很专业的领域,需要对软g开发商h相当的业务能力,公司喜欢把我们的业务人员叫业务顾问,大抵的意思就是我们能提供一个行之有效的解决Ҏ吧。这更说明我们对业务要有相当的了解。所以我们可以专注的做一个行业,做一个领域,把这个领域做_ցZQ才能主导市场。说大了。这些当然不是我现在考虑的问题。我只是介绍一下我的业务背景。技术方面,用的是j2ee环境?/p>
主要q是两个斚w吧。一个是业务斚w的,需求不定啦,永远不停止的变更啦,客户的抱怨啦Q迟q不能上U啦。一个方面是技术方面,代码都是copy/paste啦,大量的无聊的重复性劳动,写代码慢慢的成了体力zR其实这些都是大家经帔R到的问题?/p>
q些问题都很宽泛Q不是我一个在叽叽喛_几天p够全部解决的。我惌决的问题是怎样通过技术手D实C务的实现Q从而Ş成一个高效的复用的解x案。领gx我们的这个领域做成一个解x案,形成一个品,可以拿来实施。其实这个与我最自己的目标还是蛮相近的,我也希望我能?开始做Z个品,从技术走向市场,q是公司为用户创造h值的更好的体玎ͼ也是我个人的能力的体现?/p>
q个话题我想说的很多Q都是自己在实践中的思考,我的x是从技术的角度切入Q然后到设计Q最l我惛_Ş成一个我认ؓ比较理想的业务实现框架。下面是q个pd的烦引?/p>