录单

来源:互联网 发布:拆弹专家 知乎 编辑:程序博客网 时间:2024/04/25 17:24

一个录单搞了一个多星期,sigh。总结一下。

配置方面,

1、为dev/test/demo/prod分别准备相应的xml文件,指向对于的数据库。这样在部署或本地测试时,将相应文件的内容拷贝到tomcat的server.xml里就可以了。

2、终于受不了内存数据库里 - 看不到刚插进去的数据。用navicat连oracle。和直接连mysql类似,tomcat需要clean一下,schema.xml里设定的表结构和data.xml里指定的数据才查到oracle数据库里。

 

bean mapping方面,大致搞清了domain object和dto之间相互填充的逻辑:根据字段名,调source的get方法,然后调用target的set方法。从domain object到dto和反向,需要的数据可能不一样(比如,用来显示的dto需要其引用的一个对象的很多信息来显示,但用来提交的dto可能只需要其引用的一个对象的一个ID就可以写回)。Tony说可以将dto分为InDTO和OutDTO,试了一下,看起来很清晰。

还忽略了一个principle,就是REST暴露出去的对象一定是DTO而不是domain object. 昨天就因为偷懒,导致一个比较诡异的bug。

 

hibernate方面,用对象进行查询(比如findCountry(City city))时,作为参数的对象必须有ID,否则hibernate会说must save the transient object before flusing it.

 

gwt方面,要给电话/手机/邮编加校验,看了会regular expression,发现一篇很好的文章(http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm) - 很多文章把正则表达式写得很玄乎,这篇写得很诚实。^在[]里面表示非,在外面表示以什么开头。[abcd]表示a b c d中的任一个,(abcd)表示abcd,一个分组。程序里严重电话号码写得比较简单,([//d]{3,4}-)?[//d]{6,8}。

gwt做输入框校验很方便,用Validator即可。程序里由于要从外面告诉InputPanel哪些字段可以为空,因此扩展了Validator,把allowBlank()也放在Validator类里。

 

大量使用了匿名类、抽象类。

 

Tony的框架设计得很好,增加新页面时,90%的effort在新功能上(前后台),只需要很少的时间测试对其他页面的影响。就像一个大楼的根基已经打得很好了,要盖房子直接往上加就是了。

 

 

原创粉丝点击