• 注册
  • 查看作者
  • WordPress代码质量怎么样?

    直到今日,WordPress依然是非常流行的博客系统,而且已经逐步升级为一个小型的CMS系统,而且其开放的架构,Hook思想,可以让人把它改成各种东西,有人做了网店,也有人做了社区,无所不能啊。

    明月发现很多小白站长们对WordPress的认知都是“人云亦云”式的,作为一个六年的WordPress老站长,我是对WordPress情有独钟一直深爱着,今天分享一篇专业PHP程序员仅从WordPress代码质量上分析一下WordPress,看完就能理解为什么WordPress可以占据全世界互联网26%的份额获得“老大”地位了。

    我是WordPress多年的老用户了,从WordPress 1.5开始使用,到WordPress 2.3开始出现重大改革,后来逐步的WordPress 3.x,4.x,我依然坚持着使用WordPress,而且,也因为从2.0时代开始,深度研究WordPress的代码,我成为了一名PHP程序员。

    WordPress代码质量怎么样?

    现如今,我已经是一个工作5年的PHP程序员了,我觉得问到这种问题,我理应出来回答一下。
    代码质量,这四个字,我们先讨论下它们的内涵和外延吧,如果概念不清的话,我想大家也是无法评价的。不如看到这里的同学来告诉我,谈到代码质量,你们想到的都是些什么?

    高内聚
    低耦合
    可读性
    可维护性
    可测试性
    分层
    抽象
    DRY
    面向对象
    设计模式
    不知道我说全了没有?反正无法说全的吧,还有很多很多咯……如果这么去评价这个项目的话,我只能说,WordPress的代码还是挺烂的啦~

    但是,如果我们来看看WordPress的故事,相信你有不同的看法。首先,我们来看看WordPress出现的年代,WordPress众所周知的作者Matt,是1984年生人,他在2003年1月的时候,开始写WordPress,那时候,因为他使用一个叫 b2/cafelog 的程序,觉得不爽,希望让它能够支持现代的Web标准,才发起这个项目,是在cafelog的代码基础上开始改写的。所以,WordPress不是从0开始构建的,本身是站在巨人肩膀上的,但是这个巨人,基本上垂垂老矣了(连Web标准的概念都没有)。

    再来看看那个年代吧,首先那时候的Matt,是休斯顿大学政治科学系大一学生,然后他是萨克斯乐手,喜欢音乐、摄影和旅游,所以,他在编程方面是个菜鸟……他当时只有19岁。所以说,他就算搞不定这事情也毫不奇怪,而结果WordPress成了世界上最著名的博客程序,可见,他还是非常天才的,他搞定了,而且,看看他搞这个的目的,他需要一个满足自己要求和符合Web标准的博客程序,仅此而已,而他做到了!
    当时的外部环境呢?说到WordPress,就无法不提到PHP,PHP那时候,正式取得巨大成功的时候,但是不好意思的告诉你们,PHP取得巨大成功,是从PHP4.x开始的,而PHP作为一个饱受诟病的语言,从开始就根本没有面向对象的概念,只是为了解决Web开发而设计的一个语言而已,那时候估计还没想过用PHP做多伟大的软件,只是想做个Home Page而已。支持面向对象的PHP 5.x,是2004年7月才首次Release的,而且那时候,PHP 4.x已经是非常巨大的成功,而且已经成功了好多年,以至于很多软件都来不及迁移到5.x。

    所以,大家想想吧,用最烂的PHP语言(不支持面向对象),用面向过程的编程范式,写了一个能run的blog,而且功能完善齐备,部署简单,安装顺利,bug很少,你们说说代码质量怎么样啊?别问我啊,我不知道啊。

    我直到2.x之后,能力才逐渐能够潜心下来看代码,WordPress里面的很多思想还是非常牛逼闪闪的。比如,它的Action和Hook机制。这个玩意儿,说有多神秘,一点也不啊。这不就是一个Observer设计模式嘛,就那么自然而然地在里面,用来解决问题了啊,而且是用面向过程实现的Observer哦!插件机制,不就是依赖注入嘛。还有优先级队列啊!处理Category那里,递归,树的构造,算法也杠杠的啊。再看到了2.3的时候,引入的tag,信息检索的思维也是杠杠的啊,tag的思想比起树状的分类目录,已经直达现代了啊。
    WordPress另一个厉害的地方是演化,从PHP 4.x走来,进化到PHP 5.x,然后它长时间都是同时支持PHP 4.x和PHP 5.x的语法的,我想说的是,PHP 4发展到晚期,出现了面向对象了,但是很简陋,连访问控制都没有啊,可是WordPress一直在同时支持两代语言的语法啊!一直考虑了很多个人博主使用虚拟主机,不易随便升级系统的困扰,尽可能让他们用上更好的版本啊。 等到历史的车轮驶入PHP 5.x后,里面一个又一个的模块,在一个个迭代里面,逐步的面向对象化。Widget的Class版出现,首先结束了写个Widget用一坨面向过程方法。后面,渐渐的越来越多内部模块都逐渐面向对象化了。在实施这个过程的时候,所有用老的版本开发的插件,都持续地能用,WordPress的向下兼容,不但跨越各种Minor版本号,也跨越Major版本号好不好。我在2.x写的某些插件,现在还能继续使用呢!

    抒发感慨都抒发得我累了。

    WordPress从代码审美来看,依然不是什么漂亮的作品。里面代码脏、乱,各种trick,表现和逻辑混杂,耦合等等问题,不胜枚举。

    但是从用户至上的角度来看代码质量的话,WordPress毫无疑问可以排进世界上最好的软件名录里面。

    部署简便,依赖少,基本不依赖各种扩展;
    向下兼容,兼容机器(*nix、win),兼容解释器(PHP 4.x、5.x),兼容数据库(MySQL,PostgreSQL),兼容社区(插件、皮肤的老版本)
    界面时尚,设计潮流,紧跟时代脚步 功能简单易用,bug很少
    安全性基本符合中小网站要求
    性能基本符合中小网站要求
    所以,WordPress是一个质量很好的项目,而且一直秉承着用户至上的精神,它的用户不光是写博客的博主,更是成千上万依赖WordPress赚取收入的自由职业程序员,WordPress没有粗暴的要求他们不断升级插件、皮肤的版本去追随版本(比如万恶的苹果),也没有粗暴的禁止老版本的使用,而是极尽所能的兼容一切。

    所以,直到今日,WordPress依然是非常流行的博客系统,而且已经逐步升级为一个小型的CMS系统,而且其开放的架构,Hook思想,可以让人把它改成各种东西,有人做了网店,也有人做了社区,无所不能啊。

    WordPress代码质量怎么样?

    如果沉下心来,仔细研究代码,不光是审美,还要考虑历史因素,现实因素,不光研究一个版本,还要研究新版,研究代码演化,相信还是能学到很多很多东西的,或许学这个,无法成为伟大的程序员,但是,你可能会成为一个优秀的产品经理,学会怎么去尊重用户,怎么去一切以用户价值为依归,也可以成为一个优秀的工程师,学会怎么让一坨看起来丑陋不堪的代码,不断往更好的方向发展,跟上时代潮流和脚本,而不是放任它腐烂发臭。

  • 3
  • 0
  • 0
  • 8.1k
  • 逻迩梁兴建骑猪猪看星星

    请登录之后再进行评论

    登录
  • 做任务
  • 实时动态
  • 偏好设置
  • 返回顶部
  • 单栏布局 侧栏位置: