隨筆-57  評論-129  文章-0  trackbacks-0
            2007年10月18日
          改寫了一下Java基類,添加了一個計數器。
          用tomcat測試了一下連續若干次請求時創建的對象個數。

          第【148259】個對象
          天哪,服務器啟動開始就是14萬個對象。

          第【148668】個對象
          第【149091】個對象
          第【149211】個對象
          第【149291】個對象
          第【149418】個對象
          第【149541】個對象
          第【149867】個對象
          第【149947】個對象

          回想一下以前人們為丑陋的struts1的單例Action的設計的辯護,真是可笑之極,哈哈哈哈
          posted @ 2008-03-11 11:35 金大為 閱讀(932) | 評論 (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 金大為 閱讀(261) | 評論 (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 金大為 閱讀(1434) | 評論 (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 金大為 閱讀(960) | 評論 (3)編輯 收藏
          被一個貌似hsqldb bug的問題折磨了好幾個小時。
          把經過帖出來,大家幫我看看。

          習慣把hql都寫成預定義的形式,同時又為了避免過多的hql定義,我的慣用伎倆:通過如下方式定義hql。

           from Message
            
          where packageKey=:packageKey
             
          and ( null =  :fileKey or fileKey = :fileKey)
             
          and ( null = :objectKey or objectKey= :objectKey)
             
          and ( null = :memberKeys or memberKey in ( :memberKeys)) 


          但是。今天在hqldb上測試時發現,在任何情況下 (null = ?)  都為真!!!
          非常奇怪,害我調試了老半天,后來把數據庫換成了mysql,ok!!

          非常奇怪啊。
          不過,上面的寫法(null =  :fileKey)也有點怪怪的。
          posted @ 2007-10-18 22:31 金大為 閱讀(796) | 評論 (2)編輯 收藏
          主站蜘蛛池模板: 剑河县| 开远市| 东乡族自治县| 湖州市| 皋兰县| 铁力市| 桦川县| 吉林省| 兴安盟| 林周县| 宁明县| 南乐县| 乌鲁木齐市| 深水埗区| 潮州市| 二连浩特市| 五常市| 五峰| 德安县| 巨鹿县| 南陵县| 潞西市| 辽宁省| 咸阳市| 宝坻区| 托克托县| 阳春市| 凯里市| 平安县| 蓝田县| 通海县| 奇台县| 景洪市| 察雅县| 昌宁县| 建阳市| 平遥县| 青海省| 灵川县| 和龙市| 宁明县|