原因 当一个人做了几年web项目后,那么一定会对web开发有一些想法,一定会找找是不是有更好的方法来进行开发,来避免加班,来避免过多的新人培训。   最近帮着另外一个组做一个web项目,使用的是structs。于是java开发web应用的噩梦再次上演了。倒不是说应用有多难,但是对于那些众多的structs-config.xml. applicaitoncontext.xml, web.xml已经够够的了。当我编写一个新的功能的时候,我该做什么呢:创建一个Action,修改structs-config.xml,创建一个business,修改applicaitoncon ...
2008-04-09

CT中表达式处理的思考

关键字: commontemplate, 表达式
目前的CT中,对于表达式的处理是根据操作符的优先级生成一个二叉树。有兴趣的朋友可以看看ExpressionReducer.java 这个类。这种处理方式可以说是中缀表达式的方式吧。然后到解释模板内容的时候,再遍历这个二叉树。 那么,是不是可以考虑换一种方式呢?也就是后缀表达式的形式。后缀表达式的最终结果就是一个栈的结构,在Java中就好像是一个List。而当对这个表达式进行解释的时候,只需要对栈进行从上到下的访问就可以了。 两种方式哪个更好?个人觉得后缀表达式更好一些。原因有以下几点:1、使用中缀表达式需要生成一个树形结构,而模板本身为了缓存,进行了序列化操作,从序列化的角 ...
2008-04-07

BNF范式

关键字: bnf
每一个经历都是一个宝贵的财富。加入CommonTemplate也是如此。通过阅读它的代码,我学习了自动机的知识,看到编译原理这个大门。于是,又勾起了我的另一个兴趣:我想看看门的里面到底有什么东西。听说这个门挺重的,不好开,不过没关系,我每天只开1厘米,开到什么程度算什么程度吧! “龙书”的第一章应该是基础,不过其中的bnf不太好理解,发现下面这个文章写的不错,能够帮助理解书的内容。抄录一下,日后再次温习。 什么是BNF范式,什么又是EBNF范式? 巴科斯范式及其扩展 BNF & Augmented BNF 什么是巴科斯范式?   巴科斯范式(BN ...
2008-03-24

测试驱动?很傻很天真

关键字: tdd
我一直认为测试驱动开发可以保证质量,如果要保证质量也必须实行测试驱动开发。我也确实是这么做的,但是就在上个周末,我辛苦“经营”的测试驱动的项目已经倒下了。 就是在上个周五的下午,客户突然说要求改动,好家伙,这个改动实在是太大了,保守的估计也需要3-5天吧。可是客户竟然要求当天晚上必须全部修改完毕! 我简直要崩溃了,我怀疑客户到底是用什么部位在进行思考,看着新的需求,脑袋一团乱,怎么可能一个下午作完3-5天的活??无奈归无奈,活还是要做滴。看着如此多,如此新的需求,我分析了半天,决定从其中一块开始入手。我打开了测试工程,在DataSet中增加了一个新的 ...
最近一直在写操作符处理的单元测试。正如liangfei所说,想要更好的优化表达式,首先得十分了解操作符的功能,而写单元测试就是非常好的一个途径。十分赞同这个观点,所以我最近一直在写测试,也确确实实地了解了操作符的功能。 在测试类中如何获得操作符对象呢?我参考了一下写完的测试类,发现是 new 出来的。可是在程序中,操作符不是new出来的,而是通过一个IOC容器获得的,而且获得是某一种操作符的handler,例如下面这样: Configuration config = PropertiesConfigurationLoader.loadStandardConfiguratio ...
    为什么质量会这么差?!当非常低级的错误出现了,当客户的指责到来了,当客户严厉的信送到了,我们傻眼了。做外包就是这样,我们处于外包链的底层,只能我们被客户骂。可是,我们的质量真的有问题。    任务多,时间紧,这当然是原因了,可是除此之外呢?做了这么多项目,为什么还会造成这样的结局??    分析一下吧:    1、设计书理解不充分。       很多bug都是一些极其简单的错误,有些简直就是界面样子的错误。经 ...
    究竟如何才能获得人生的成功,抑或如何才能实现人生自我的价值?每个人每隔一段时间都会询问自己这样类似的问题。而且往往是心情失落的时候。例如当看到同学取得比自己更多的成就;当看到别人优越的生活水平的时候。往往这个时候,会感叹自己为什么不能像别人一样取得如此的成就呢?与之而来的,是一些宏远的计划:某天某天我要实现什么目标,我也要如何如何等等。可是,当第二天起床的闹钟响起的时候,想的却是“能不能再让我多睡5分钟?”     今天也和同事聊起了类似的事情。目前公司的发展确实不顺利,前景不明朗,而且业务并 ...
    今天下午,项目代码的review结果送回来了。一共被指摘了50多条,   。其中有这么一条,指摘的内容是我们在SQL中使用了“ not in ”这样的子查询,要求我们改成 join 方式。    这条SQL是这个样子的:    select x, y, z from table_a where user_id=xxx and user_name not in (select user_name from table_b)   &nb ...
2008-01-17

TDD,让我轻轻地靠近你

关键字: tdd
    TDD这个东东吵吵嚷嚷好多年,但是实践起来就是那么的难,这也是没办法的事--项目已经很紧张了,我们为什么还要花时间在写测试上面?     这么说吧,TDD就好像是一个美女,看着确实很漂亮,可是追到她却需要很大的本钱。好吧,我也不心急,先让我轻轻地靠近你。    那么在对日项目中实行TDD似乎更是难上加难了?因为对日的项目很注重设计文档,他们称之为“详细设计”。详细到什么程度?详细到变量的名字都起好了,写代码的时候,只要照着文档写就可以了---这其实是个神话,也确实是个神话。 ...
    AOP         AOP是Spring一切应用的基础,没有了AOP,Spring就像没了翅膀的鸟---只能在地上蹦跶了。         AOP中有一些基础的概念,需要牢记:         1、切面。 用个比喻会更形象一些。可以把切面理解成一把菜刀,而其他方法就好像是黏糕,如果你要把所有的黏糕都在某个   &nbs ...
yananay
搜索本博客
我的相册
D35bafa8-5bf0-475f-aa06-16f3080557a1-thumb
tdd
共 3 张
存档
最新评论