首先我们来说一下什么是WordPress?WordPress是使用PHP语言开发的博客平台wordpress技巧,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。目前世界上有三分之一的博客网站(包括企业网站代备案、政府网站)是用WordPress建立的。国内大多数站长手中的博客网站也是WordPress建立。wordpress技巧,什么是WordPressWordPress的优势和劣势是什么接着我们来说一说WordPress的优势,优势最明显就是安装方式简单易用,而且有很多第三方开发的免费插件和主题,比如你想建立一个淘宝客网站或个人博客或自媒体网站或影视网站或小说网站或CMS网站等等,都可以找到相对应的主题模板和相关插件。然后我们说一下WordPress的劣势,这个因为WordPress是国外开发的,如果你直接安装好之后直接使用国外提供的主题模板,那么不管是前端还是后台都会很卡,因为大环境影响我们访问国外的网站会很慢,而国外的模板很多都会加载一些相应的文件或资源,所以最好的方法就是使用国人开发的主题模板,这样一来WordPress的这个劣势就可以忽略了。明月发现很多小白站长们对 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 程序员。现如今,我已经是一个工作 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 思想,可以让人把它改成各种东西,有人做了网店,也有人做了社区,无所不能啊。如果沉下心来,仔细研究代码,不光是审美,还要考虑历史因素,现实因素,不光研究一个版本,还要研究新版,研究代码演化,相信还是能学到很多很多东西的,或许学这个,无法成为伟大的程序员,但是,你可能会成为一个优秀的产品经理,学会怎么去尊重用户,怎么去一切以用户价值为依归,也可以成为一个优秀的工程师,学会怎么让一坨看起来丑陋不堪的代码,不断往更好的方向发展,跟上时代潮流和脚本,而不是放任它腐烂发臭。
本文出自快速备案,转载时请注明出处及相应链接。