wordpress技巧,wordpress代码质量怎么样

明月发现很多小白站长们对 WordPress 的认知都是“人云亦云”式的域名备案域名备案wordpress技巧,作为一个六年的 WordPress 老站长,我是对 WordPress 情有独钟一直深爱着,今天分享一篇专业 PHP 程序员仅从 WordPress 代码质量上分析一下 WordPress,看完就能理解为什么 WordPress 可以占据全世界互联网 26%的份额获得“老大”地位了。wordpress技巧,wordpress代码质量怎么样我是 WordPress 多年的老用户了,从 WordPress 1.5 开始使用,到 WordPress 2.3 开始出现重大改革,后来逐步的 WordPress 3.x,4.x,我依然坚持着使用 WordPress,而且,也因为从 2.0 时代开始,深度研究 WordPress 的代码,我成为了一名 PHP 程序员。现如今,我已经是一个工作 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 思想,可以让人把它改成各种东西,有人做了网店,也有人做了社区,无所不能啊。如果沉下心来,仔细研究代码,不光是审美,还要考虑历史因素,现实因素,不光研究一个版本,还要研究新版,研究代码演化,相信还是能学到很多很多东西的,或许学这个,无法成为伟大的程序员,但是,你可能会成为一个优秀的产品经理,学会怎么去尊重用户,怎么去一切以用户价值为依归,也可以成为一个优秀的工程师,学会怎么让一坨看起来丑陋不堪的代码,不断往更好的方向发展,跟上时代潮流和脚本,而不是放任它腐烂发臭。


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/21803/