前个月的事情了。有人在http://www.theserverside.com上面贴了个新闻:Open Source J2EE AppServer JFox 1.0 Released。内容大抵是一个中国的组织发布了一个open source的J2EE Server:“JFox is an Open Source, J2EE-based application server written by the Chinese Open Enterprise Foundation. Version 1.0 has been released. ”
结果那些空闲的老外就去code review,接下去就是中国人狂丢面子了:
Corby: How about the variable names in this method? ... Who could possibly maintain this aside from the original author?
Taylor Cowan: It's an artifact of using a code generator.
Corby Page: That's pretty ambitious, using modeling tools and code generators to create a J2EE server!
Michael Prescott: The code was generated by JavaCC. It's a useful tool, but when the auto-generated code throws exceptions, it's absolutely impossible to debug.
Viland G: The fun is that, it looks like another fork of JBoss! But these guys renamed the packages and removed author tags. It's easy to write J2EE servers these days
具体的,大家自己看这个新闻后面的跟贴吧。能自己写一个app server,自然是值得仰慕一下的,至少我没写过。不过如果拿出去的话,要接受群众的挑剔眼光考验,还是要再加三分努力的。
打印 | 张贴于 2004-02-03 23:26:00 | Tag:Cool Stuffs

留言反馈
/*@bgen(jjtree) EJBQL */
ASTEJBQL jjtn000 = new ASTEJBQL(JJTEJBQL);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
SelectClause();
FromKeyword();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHERE:
WhereClause();
break;
default:
jj_la1[0] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ORDER:
OrderByClause();
break;
default:
jj_la1[1] = jj_gen;
;
}
jj_consume_token(0);
jjtree.closeNodeScope(jjtn000, true);
jjtc000 = false;
{if (true) return jjtn000;}
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
throw new Error("Missing return statement in function");
}
......