我的评论

今天找资料,碰巧看到,顺便说说,呵呵,首先要表示感谢,你的文章让俺看到了jdon的进化,jdon今天终于进化到他一开始就极力反对的模式了,这点是jdon当初让很多人抓狂的核心。

你可能并不清楚当年很多人和benq的纷争,其核心并不在于中国人自己做开源好不好,核心还是在于一个技术发展方向,和在此之上技术人员的职业道德操守。
实际上不少开源项目还是得到了国内一些人的认识, 比如springside,在javaeye上人气就很旺,同样是javaeye,各位牛人对benq就是一边倒的态度

1. jdon的概念并不新,三四年前也不新。 当年在ejb的失败已经成为定局的时候,benq还在极力鼓吹设计一个基于ejb应用的框架,而且层次结构划分及其复杂,这是他让很多人抓狂的最初原因,但是他更进一步让人抓狂的原因是他的固执。 你可以找找看,他现在基本只在jdon发言,而且jdon并不允许任何有反对他的意见。
如果你有留心的话你会发现,5年前左右,ejb将死未死之时,真是大量此类框架涌现的时候。 另外, naning这个优秀的开源lib也是中国人做的,并得到了当时国外社区的认可。

2. jdon现在已经进化了, 基本上是copy spring的路子,而最初包括现在benq都是极力反spring的。 这基本是商业利益的问题, 就想当初他极力鼓吹ejb一样,因为这是他的谋生手段。
jdon的核心和spring现在已经没有本质区别,差别在于benq一个人无力完成类似spring这样的大作,所以他只能再找一些开源的东西进行包装。这注定他只能是一个追随者,当然,他身后很多追随的菜鸟也可以保证他的饭碗。

其实这样一个级别的框架,是基本不可能靠一个人来开发维护的,benq的偏执又缺乏足够的天赋,注定了jdon的悲剧。

3. jdon上曾经有一个程序员向benq请教如何保证自己的代码不被有效反编译,对这个问题的一般做法是使用混淆工具, 或者进一步在设计中加入陷进和伪装类。 但是benq当时的回答是, 一个优秀程序员做出来的设计, 应该是让人在没有文档的情况下,无法看懂源代码,诸如jpetstore,tomcat都是这样的。 如果这确实是benq的本意的话,你可以明白,他个人是更倾向于用复杂化的东西来表现简单食物的,这是jdon最初的版本被人狂踩的一个原因。

另外ps一下,我认识的大部分程序员都具备在不用文档的情况下读懂jpetstore源代码的能力,由此真是怀疑某人的iq。

4. benq本身对模式有很好的研究, 这也是早期他得到众多网友赏识,并由此建立自己江湖地位的原因。但是任何事一旦走向过就莫名其妙了。从模式走向过度模式,到反模式,就比较悲哀了。
你也提到benq在模式的理解上,在代码质量上,都超过一般的程序员,他这个人水平还是有一些的,但是大部分人不喜欢的是他的人品。

5 有件事可以说明benq的固执, 某次他和人争执,在无法以理服人的情况下,他拿出自己用鼠标绘制的山水画,意思是一个能有如此雅兴和修养的人,道德品质肯定是高尚的,以此证明对方是错误的。到了3,4年前,他基本上已经拒绝和任何对他有不同意见的人进行辩论了。 有不同意见者删帖,呵呵。

我大概认识benq8年了,呵呵。

有笔误
系统类加载器:由于其负责加载虚拟机的核心类型
这里不应该是系统类加载器吧,应该是boostrap加载器。
re: 架构大师之路 鬼狗 2008-08-01 10:23  
@44you
跟预测无关吧,只是比较崇拜某些大师昧着良心说话卖东西的态度。 比如那个袁某,当时说这话的时候他们内部使用ejb开发的一个东西问题多多,开发人员私底下都跟我承认选择ejb选错了,为了商业利益还继续大肆宣传。

benq我最佩服的是他就是敢把某些明显的谬论说成真理,诸如什么jpetstore的代码一般人没有文档就根本读不懂之类的瞎话。
re: 确实好用-visualvm 鬼狗 2008-08-01 10:19  
@netrice
jprofile,jprobe我都用了很多年了。这2者根本不是一个概念, 我喜欢的是这种小东西,方便,易用,大部分功能都已经达到了,还要弄个盗版的大玩具来跑干嘛
re: java实现系统托盘 鬼狗 2008-07-30 15:44  
有个东西叫jdic, 1.6的东西也都是从这个项目发展来。
用jdic可以很容易实现系统托盘,内嵌浏览器等功能, 不需要非1.6不可。
@mingkg21
用的jmm,j9联网有点问题
@shrekwhoosah@gmail.com
example代码里有,pipeserver, 你自己翻翻看
另外有个文档也有讲。
另外不知道lz用的jdbc是什么版本? sqlserver 2000 的官方版本问题多多,印象中诸多特性都不支持。
pk的这么热烈丫, 我想可能先要搞清楚的是行锁,页锁和表锁这些基本概念,搞清楚不同数据库的锁机制,然后再来谈乐观锁还是悲观锁会比较容易理解。

我估计楼主缺少在sybase,db2下的工作经验, 所以才会这么激动。不同数据库的设计本身是有相当大差异的,很难说好坏,我印象中,缺省情况下对锁的处理比较不伤脑筋的就是oracle了,其他的不管是sybase还是db2都不是缺省就可以很轻松做到高并发的,但是处理的好,至少db2 可以做到不输给oracle的高并发。 至于sql server ,tpc网站上去翻一下,可以发现sql server也是常客。

但是早期oracle的开发, 嗯, 我觉得在很多方面其实倒不如db2这样的数据库省事,比如大表和小表在sql中的位置,都会显著影响sql性能。再比如sql是简单好,还是复杂好,这2个数据库也是相反的。

这只能说明不同数据库的机制是有很大差异的,用好一个数据库需要点时间对他进行比较深入的理解。现代程序员往往被各种框架屏蔽了底层,有时候也不是什么好事,以前项目中就有专门组织DBA对程序员进行数据库方面的培训,目的也就是为了弥补这个问题。

对于锁的问题,在oracle9i&10g编程艺术那本书里,作者有很深入的介绍,也列举了其他数据库的处理情况。作者从其他数据库转向使用oracle的时候,对这个问题,貌似和楼主一样震惊,呵呵。当年我也有个项目,被db2的锁机制,搞的的死去活来,呵呵。

简单的说,摇身要是高可靠性数据库都只是知道写sql这么简单, 人家DBA还怎么活?
re: 使用H2的MixedMode模式 鬼狗 2008-06-19 09:21  
@隔叶黄莺
h2和sqlite的级别不一样,这么说吧,我平时开发是使用h2来代替oracle,db2, mysql这些企业用数据库的, 而用sqlite就比较难。比如如果你的目标数据库是db2,开发中又使用到一些java或c的函数,用h2只要使用java方法代替就可以了。

而h2的文件这么多个,也是从产品应用级别角度的考虑,方便恢复和跟踪问题。

sqlite则精简的多,相对来说,sqlite更像一个access, 是个文件库的概念,而h2更象一个袖珍版本的oracle或者mysql。。

另外你提到的多进程访问模式,h2也是可以支持的,设置一个参数即可。
re: 理发二三事 鬼狗 2008-06-18 12:39  
就这一点来说我们是共同的,呵呵
ps一下,你们客服人员到现场连个服务单都不填的,管理那个滥。
如果apusic的技术人员有能力解决,谁还有意见,问题就是。。。。。
呵呵,hp的哪位? 不要声张,俺正在做一个科学研究。
我Orz了,作为国内apusic的最早用户,作为apusic的义务免费测试人员,作为apusic的直接受害者,我今天又Orz了。

ls的,貌似楼主的意思并非是说apusic不能正常使用log4j,而是要自己玩玩。我们使用log4j和在其他应用服务器上并没有区别。

楼主,你骗点击也不用这样么,这跟apusic有鬼关系,你这样写只会让大家以为apusic很滥,虽然她确实很滥,但是作为顾问你要有职业道德么。



呵呵,对日期字段我的原则是允许的情况下,用字符串代替。
re: 写自己的小方法 鬼狗 2008-06-13 20:50  
写小方法根本就不是以空间换取时间为目的,而是为了优化代码的结构和可维护性。

理论上,每个方法的都需要占用内存的一个区间, 方法的调用也会增加性能消耗。有兴趣你可以看看inside jvm。 实际上,有些现代编译器会对某些小方法进行优化做类似inline的操作回避因为方法太多导致的性能问题。
@cracky
谢谢,改了,原来测试有误
@YODA
改了
@ron

这个,就跟ML一样,用自己动手才知道爽不爽。
我用的是trac,带了一个很好的wiki。
@张氏兄弟
源代码就没法开源了,这是一个完整的应用项目。 基本实现思路已经写出来了,熟悉midp和swing的话,重现难度不大。你可以找找ibm的 midp的源代码看看。
对于手机地图这种应用,我这套显然不合适。
@beansoft
呵呵,其实现在企业应用是近期发展的热点,我也是因为这个才开始做手机应用的,我本来的专长就是企业应用。 现在业务系统的移动化是大趋势,移动化可以充分激活企业信息流程,那点手机费用对领导来说根本不算什么。只是个人没有能力拿到政府项目而已。

嗯,暂时还没法开源,一是因为我现在没工作,指望看看能否靠这个混点饭吃,找到合作项目或者工作,二是几个搞移动OA的公司都盯的紧,一开放源代码,特别是office处理那部分的, 个别恶心公司的阴谋就得逞了。

下半年找到工作解决了吃饭问题再考虑是否继续做下去了, 那时候会考虑开源的方式做。至于吃国外市场,也有所了解,但是没有相关资源,而且老外的3g推广比较普及,应用模式会有差别。