程序设计:
对于我的团队,我会更乐于采用一种让实现人员更轻松的方式。不用理会太多的语言细节,不用在投入开发前学习更多的概念(尤其是这个项目独有的),不用特别严格的 code review 也可以允许大家提交新的代码,切不至于轻易的引入 bug 。
我相信,软件做到后面,设计人员不需要亲自写太多代码。虽然我现在每天还是大量的写,也并不觉得枯燥。
事必恭亲是不好,但并不是说,你给实现人员足够信任就可以放手的。真正让你放手的只能是,你做出了好的设计,无论是谁,他也写不坏它。这时,是你乐意自己写,还是多找几个同学帮忙写,已经不重要了。
– 摘自 云风 blog
程序毕竟还是人写的,盲目的依靠工具和其他的东西,只是一个辅助,其中最关键的点,还是人的素质。大家的共识。流程是死的,人是活的。
同事在页面上写了个死循环,跟了半天才发现。具体代码如下:
for(Iterator it = XXXX.iterator(); it.hasNext();){
if(XXX= XXX){
XX1 =true;
}
// OTHER CODE.
}
具体问题出现在这里, it.hasNext()。 如果使用 it.next(),就ok了。
最近项目中涉及以下情景,针对用户设置一对规则,用户申请的时候按照设定的规则进行验证。
表结构如下:
规则表:
| 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 = ">";
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个表达式是否相等
Recent Comments