Archive

Archive for the ‘Code Snippets’ Category

程序之设计

January 24th, 2010 cashplk No comments

程序设计:

对于我的团队,我会更乐于采用一种让实现人员更轻松的方式。不用理会太多的语言细节,不用在投入开发前学习更多的概念(尤其是这个项目独有的),不用特别严格的 code review 也可以允许大家提交新的代码,切不至于轻易的引入 bug 。

我相信,软件做到后面,设计人员不需要亲自写太多代码。虽然我现在每天还是大量的写,也并不觉得枯燥。

事必恭亲是不好,但并不是说,你给实现人员足够信任就可以放手的。真正让你放手的只能是,你做出了好的设计,无论是谁,他也写不坏它。这时,是你乐意自己写,还是多找几个同学帮忙写,已经不重要了。

– 摘自 云风 blog

程序毕竟还是人写的,盲目的依靠工具和其他的东西,只是一个辅助,其中最关键的点,还是人的素质。大家的共识。流程是死的,人是活的。

Categories: Code Snippets, work Tags:

一个死循环

September 29th, 2009 cashplk No comments

        同事在页面上写了个死循环,跟了半天才发现。具体代码如下:

for(Iterator it = XXXX.iterator(); it.hasNext();){
        if(XXX= XXX){
                    XX1 =true;
        }
          // OTHER CODE.
}

具体问题出现在这里, it.hasNext()。 如果使用 it.next(),就ok了。

Categories: Code Snippets, Java Tags: , ,

Java中使用JS解析器(JDK 1.6)

September 28th, 2009 cashplk No comments

最近项目中涉及以下情景,针对用户设置一对规则,用户申请的时候按照设定的规则进行验证。

表结构如下:

规则表:

rule_id rule_type rule_name status
规则Id 规则类型 规则名称 状态

规则明细表:

rule_id rule_detail_id rule_name rule_Type expression rule_value
规则Id 明细规则Id 规则名称 规则key 表达式(>=,==,<=,<,>) 规则值

涉及规则值的判断和解析,找了半天,高手指点使用JS解析。代码如下(JDK1.6):

import javax.script.ScriptEngineManager;
 
ScriptEngineManager factory = new ScriptEngineManager();
 
ScriptEngine engine = factory.getEngineByName(“JavaScript”);
 
String ruleType = "1";
 
String expression = "&gt;";
 
long ruleValue = 111;
 
long v = 222;               // 需要验证的值
 
JavaScriptValue j = new JavaScriptValue(ruleType, v);
 
engine.eval(j.toSting());
 
Boolean b = (Boolean)engine.eval(ruleType + expression + ruleValue);   // 判断2个表达式是否相等

cashplk的心路历程 is Digg proof thanks to caching by WP Super Cache