9月 162010
 

1.顽固坚持php4,迟迟不愿拥抱php5

其实这是我最不能理解的一点,Discuz现在的代码竟然还是以php4.3.0为最低标准的。

这种做法虽然说可以做到最大限度的兼容,php4的运行效率也确实比php5高不少。可是为了向下兼容,不得不牺牲很多高版本php的优秀特性。事实上,php5已经在各方面非常完善,面向对象方面的支持全面提升,PDO, json等类和函数相比php4强大太多了。

在CPU并行性能空前强大,内核数量4个8个12个递增的今天,php运行效率真的有那么重要吗?要知道现在web2.0网站的第一瓶颈是数据库服务器,而不是php服务器,即使php服务器压力较大,也有反向代理、动态DNS等各种各样简单有效的负载均衡方法解决。真的有必要为了些许的php运行效率,而放弃高版本php的强大功能吗?

2.代码架构混乱,不采用MVC框架,不面向对象

说实话,写了12年程序,Discuz代码我是下了十几次决心才敢开始阅读的。因为这套代码实在非常丑陋。

和我一起创业的同伴一直和我有一个争论,他坚持认为discuz发布出来的代码一定是生成出来的,内部开发的时候一定是另外一种结构。因为他认为discuz代码的可读性已经远远超过了正常人理解能力。

虽然康盛一直试图改进代码结构,在最新的Discuz!X中,我们看到他整齐的把function, class, plugins放在各自的目录里,但由于它不采用php5,也不采用MVC框架,因此代码中仍然充斥着global, require_once等等,和系统底层紧耦合且效率低下的糟糕写法。

由于没有运用MVC框架,也不面向对象,导致了插件机制难以实现,二次开发举步维艰。其实这对Comsenz自己开发团队成员,也造成了单元测试的困难。

3.缺乏国际化的眼光,偏爱gbk而不选择utf8 Continue reading »