张无忌做的是并发负荷很大的系统(听闻1000以上,换算到客户端数量肯定在几万以上,而weblogic这样昂贵的产品,它的servlet容器,单个servlet承受数千发访问都是很需要考量考量的,至于EJB就不太清楚),我想他考虑的出发点就比我们高得多.他考虑的方式,对他作的系统来说,的确是十分要注重的,甚至是绝对要那样做的.
使用String肯定会有代价的,这个应该不用怀疑,不说他执行的增加/删除引用计数这样额外的执行代码,他本身就多占了一个引用计数(8字节)和一个长度(4字节),算起来一个字符串起码就多分配了12字节.这个是不是很浪费?说不好的,就好比小马过河,老鼠说河很深,老说河很浅,究竟是深是浅,要相对小马来说才正确.同样是做服务器开发,有的很大的系统,有的是很相对较小,有的系统硬件和普通架构足够应付,而十分注重业务实现,有的业务相对简单,但却极重系统的稳定性,可能考虑的时候就各有出发点.
又说了一通废话,不过我现在觉得,程序员代码水平固然是很重要,另一方面的水平则更重要,就是分析代价和所得,说穿了吗,就是用最少的力气谋取最大的利益,咱们写程序,无论说得多好听,爱好写程序啊,为了理想啊,为中国软件崛起啊,都是假话,其实都是谋生赚钱.所以具体到软件架构,也肯定要考虑一下.也不是说一定要都用现成的东东或者简单的东东,服务器系统程序除了开发成本,也有维护成本等等.比如大家都知道用.net开发,开发速度快,开发成本就很低,但用这个架构的东东目前就比较少,其中少不了维护成本的考虑.
我个人没有做超大系统的机会,所以我考虑问题就远不如张无已要求那么高.如果我有机会做大系统,我一定向张无已多多讨教学习.
我个人看贴子,并不会随便反对别人的意见,因为我觉得每个人提出的意见,都肯定是有过思考的,这个贴子中每个人的贴子都有道理,都有学习的地方,只是大家出发点并不尽相同.
大家继续,我好多学习学习,特别是我没有条件亲手去体会的东东....