随笔-57  评论-129  文章-0  trackbacks-0
  2007年11月10日
改写了一下Java基类,添加了一个计数器。
用tomcat测试了一下连续若干次请求时创建的对象个数。

第【148259】个对象
天哪,服务器启动开始就是14万个对象。

第【148668】个对象
第【149091】个对象
第【149211】个对象
第【149291】个对象
第【149418】个对象
第【149541】个对象
第【149867】个对象
第【149947】个对象

回想一下以前人们为丑陋的struts1的单例Action的设计的辩护,真是可笑之极,哈哈哈哈
posted @ 2008-03-11 11:35 金大为 阅读(920) | 评论 (4)编辑 收藏

无意间看到的一片趣文:

希望有一天能看到文言文版的国外图书翻译,真的比较有趣,还有,不懂的时候,也可以顺带看看英文原文,也好顺便学学英语,呵呵。

引:

Thus spake the master programmer:

"When you have learned to snatch the error code from the trap frame, it will be time for you to leave."

师曰:『惑中取错之日,可出山矣。』

…..

全文见:

http://livecn.huasing.org/tao_of_programming.htm
posted @ 2007-12-01 15:27 金大为 阅读(240) | 评论 (0)编辑 收藏
我一直都想搞一个XML的模板引擎,大凡非xml的模板风格,第一感觉就是那么的不爽。
可是CommonTemplate例外。

CommonTemplate处处为程序员考虑周到的漂亮的语法风格,确实非常诱人。
具体的语法我就不一一列举了,大家可以到他的官方网站去翻阅。

挑几个亮点介绍一下:
  1. for循环的空处理,相信曾经麻烦了不少程序员吧。

    现在好了,CT支持如下语法:
       $for{}
       <tr>
          <td>1</td>
          <td>2</td>
          <td>3</td>
       </tr>
       $forelse
       <tr>
          <td colspan="3">没有数据</td>
       </tr>
       $end

  2. 大胆的关键字利用。


    <html>
        
    <body>
            $if{users != null && users.size > 0}
            
    <table border="1">
                $for{user : users}
                
    <tr>
                    
    <td>${for.index + 1}</td>
                    
    <td>${user.name}</td>
                    
    <td>${user.coins}</td>
                
    </tr>
                $end
            
    </table>
            $end
        
    </body>
    </html>


    大家看这段代码。一般来说,for这种常用关键字是不好用作id的,但是这里作为默认的循环状态对象的id。既解决了块对象存放的问题,又不会引起其他命名的冲突。一个字,妙!!!!

  3. 其他漂亮的特征:


    注释版语法外套,方便于测试数据填充及可视化编辑。
    单一的语法规则,方便解析与扩展。

    等等。。。。


好了,赞叹之余还是给出一点点遗憾:

boolean 运算有点丑陋。
我个人更期望 js的boolean运算风格,没有必要一碰到boolean 运算就返回true ? false
我们完全可以返回一个更有意义的值,比如,我更期望这个语句能如我所愿的执行。
 
${ variable|| "默认值"}

当能,如上支持,CT是有的,它的写法是
 
${ variable | "默认值"}

但是,我感觉,这个语法就有点复杂了,也不那么直观。
一般来说| 是按位取或,是位运算符,这里这个用法,跳跃的确实有点大,较难接受的。
posted @ 2007-11-29 21:28 金大为 阅读(1409) | 评论 (5)编辑 收藏
刚刚经历的一点小技巧,共享一下。

1。给代理函数加上空判断

一个组合模式的运用。代码如下:
class Composite impliments IF1,IF2,IF3{
   
private IF1 if1;
   
private IF2 if2;
   
private IF2 if2;
   
public Composite (if1,if2,if3){
   }
}

eclipse 生成指代方法>>>>

class Composite impliments IF1,IF2,IF3{
   
private IF1 if1;
   
private IF2 if2;
   
private IF2 if2;
   
public Composite (if1,if2,if3){
   }
   
public void method1(){
      if1.method1();
   }
   .
}

//正则表达式
// (\w+method\d)(\..*) if($1!=null){$0}
//>>>
class Composite impliments IF1,IF2,IF3{
   
private IF1 if1;
   
private IF2 if2;
   
private IF2 if2;
   
public Composite (if1,if2,if3){
   }
   
public void method1(){
      
if(if1= null){
         if1.method1();
      }
   }
   .
}

//还有一个构造函数里的属性赋值:
// (\w+)       this.$1=$1

结果,略

触类旁通,更多新的用法待你去发掘^_^
posted @ 2007-11-10 18:17 金大为 阅读(950) | 评论 (3)编辑 收藏