被严重低估的Web开发框架:WordPress

前言

我在About me页面里说过,大学时候玩过WordPress,那时候还是2.X版本的吧,更多的是当作一个日记本在用,工作之后接触了各种语言和新技术,Python、Ruby、Node.js等等,对WordPress越来越不待见,觉得不过就是一个博客软件,好多年都没有关注了,虽然对它也挺有感情的,毕竟用过了好几年。

前段时间,因为项目需要,想要找一个方便又好用,对开发者友好的CMS平台,兜兜转转又回到了Wordpress的怀抱,还是熟悉的味道还是熟悉的配方,甚至比以前更好用了,强大的API、完整的文档、功能和社区生态圈,外观也越来越漂亮了,很多看起来很高大上的网站一点都看不出来是背后是WordPress开发的,所以这也又一次激起了对WordPress的兴趣,而且比起以前,现在更多的是从开发者的角度去看待,觉得用WordPress开发特定需求的网站是一个非常好的选择,进而发现很早之前就有很多国外的开发者在探讨这方面的趋势和用法了,也有好几本关于这方面内容的书,比如:

Building Web Apps with WordPress 2e

WordPress Web Application Development – Third Edition: Building robust web apps easily and efficiently (English Edition)

下面这篇文章的作者是 TOM MCFARLIN,一个WordPress开发者,也是一个很高产的技术文章作者。这篇文章虽然写的很久远了,但是里面的话深得我心,很有同感,曾经我也对各种新技术不想错过,什么都想尝试,什么新就用什么,俨然一个技术追星者,但实际上现在想想只是一种自嗨罢了,是一种技术焦虑感使然,太浮躁了,觉得自己不懂不会的话就显得落后了,对WordPress都不想正眼看一下,就像作者说道的,最终在对各种框架的选择中迷失了本来的目的,甚至会陷于编程语言之争,各种程序员届的“圣战”。其实,最适合自己的才是最好的,哪怕它看起来没有那么酷炫新潮。下一步打算翻译一下Tom的用WordPress框架进行Web开发的系列教程,敬请期待。


想比较于使用软件端,我更喜欢在Web应用程序上工作,并且我的大部分职业生涯都专注于这一点。

我工作的最初几年里一直在做.NET的企业应用程序。像其他程序员一样,在工作之余,我花了很多时间来研究各种语言,框架和工具,部分原因是因为这些很有趣,部分原因是因为我希望能追上最新的技术。

但有意思的是,随着你在Web开发上的时间越长,你就会越来越明白一件事,从本质上来说这些都是同一问题:将数据导入数据库并从数据库中获取数据。

当然,在这两者之间还有很多事情需要考虑,但是,归根到底,这就是最终要做的事,其他一切都是细节。

例如,大多数Web应用程序通常包括用户管理,注册,身份验证,会话管理,数据清理,有效性验证等等等等(此列表可能会变得非常冗长乏味)。

关键是随着应用程序规模的增长,它们变得越来越难以维护。

当然,市面上总有各种计算机专业人士和技术布道者,推销各种最新最好的技术和软件开发方法,来确保我们避免难于维护的问题。

你肯定通过各种途径听到很多这方面的内容:包括各种各样的测试技术,以及可以与任何框架结合的各种设计模式,还有各种最新的库。

不要误会我的意思 – 所有这些事情都很重要,讨论这些技术很有意思,并且绝对值得尽可能地将它们融入你的工作,但实际上它是一个无底洞 – 如果你想要找到一个“银弹”(注:可以看下 人月神话 这本书),你最终将花掉所有时间,而且你很可能永远无法实现你要构建东西。

这就是框架派上用场的地方了。各种开发语言都有许多框架旨在解决Web开发中的组织,维护和平凡任务的问题。这太棒了。说真的,在碰到繁琐又单调乏味的。软件开的大部分都是这种任务。

但是,暗黑的一面是,你最终会在陷入一种宗教战争,哪种框架最好,然后会变成哪种语言最好,突然间我们不仅没有做出我们本想要做的东西,也没有做出争论需要得出的结论:那就是我们有太多的选择来进行开发。

很奇怪,对吗?

如果Web应用程序都可以简化到相同的两件事 – 即数据和数据输出 – 那就有很多选择,为什么不坐下来试试看结合哪几套工具可以更好的帮助你解决你自己的需求,并选择你或你的团队最喜欢使用的工具集呢?

不管怎么说,多年来我工作中的大部分时间在.NET上,并且在花了很多业余时间在Rails上。事实是,两个我都喜欢。我还花时间瞎搞了各种其他框架和语言。在这同时,我还在WordPress上维护了一个小博客(那时还是WordPress 2.x版本)。

不知道从什么时候起,我开始在WordPress上为我的博客做更多的自定义,然后我开始为其他人做些小的自定义,然后我开始构建更大的项目,并且随着我开始在WordPress的开发者平台Codex上自学的越来越多, 我真的开始越来越喜欢与之合作。

WordPress通常不被视为应用程序开发的选项,也不被视为软件开发的技术堆栈之一。但如果你在WordPress上花费足够长的时间,就像你花费在开发其他网络应用程序时那样,你就会开始认识到许多相同的事情:

  • 数据库
  • 中间件
  • 展示
  • 用户管理(注册,认证等)
  • 数据清理和验证
  • 缓存机制
  • 等等等

结论:WordPress是一个完全可行的应用程序开发选项。

基于这一点,我花费了大量时间用WordPress为我的创业公司其他人构建产品,我真的很喜欢它。这就提出了一个有趣的问题:为什么在构建某些类型的Web应用程序时WordPress不被认为是一个可选项?

不,我并不提倡在WordPress上构建一个社交网络 – 就像我已经说过的,找到能最好的解决你的问题的合适工具才是关键 – 完全值得考虑一下用WordPress开发某些类型的Web应用程序。

那么,回到原来的问题,为什么wordpress被这样看待呢?

我相信这可以归结为WordPress的营销策略和外在形式,它是被当作一款产品,而不是作为一种框架呈现给世人。开发人员不是目标受众。在引起人们对Wordpress的API关注度,或者用 WordPress开发Web应用程序的可行性方面,基本没有任何的推广和介绍。

相反,它被看作是一个博客平台,内容管理系统或轻松搭建网站的方式。

所有其他框架 – 无论是Zend,Rails,Sinatra,.NET MVC,CakePHP等 – 都将自己呈现为一种有助于软件开发的形式。而WordPress给人的印象却是一种可以用来写作关于框架、软件 (显然还可以包括其他任何东西)的内容的博客平台。

但对于开发者来说,深入了解WordPress后,你会发现它的功能与其他技术栈一样多,并且开发过程与其他任何框架并无二致,而且也会有“让我欢喜让我忧”的体验。

但那就是另一个故事了。

原文地址

WordPress For Application Development | Tom McFarlin

Using WordPress For Application Development is a little…

Tom McFarlin

延伸阅读

下面的视频(需要翻墙),Using WordPress as a development framework [Jeff Pearce] – WordCampCT 2011,是Jeff Pearce分享的用Wordpress做框架开发的一些介绍和讲解,还演示了一个demo。Jeff是著名的Wordpress电商插件woocommerce的核心开发者之一。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券