WordPress可以替代像Django或Ruby on Rails这样的框架

我认为自己是一个训练有素的WordPress模板开发人员,最近我开始阅读有关Web应用程序框架的书籍和文档,特别是Django和Ruby on Rails。 我不知道这两种语言中的任何一种,但我没有任何问题要学习另外一两种语言。 我真的没有得到使用框架的真正好处,因为我对WordPress的强大function非常有信心。 那么,谁能告诉我使用框架的真正好处? 例如,Pinterest是使用Django制作的,但我认为我可以使用Javascript和CSS3实现与WordPress模板相同的结果。 任何人都可以告诉我在这种情况下使用框架的差异/好处吗? 谢谢!

您可以使用Wordpress实现同一个前端,但是您无法实现的是基于更多面向应用的体系结构的应用程序的速度和规模 – 最重要的是可维护性。

WordPress非常灵活,但速度也很慢,需要大量的TLC才能在任何显着的规模下运行。 它的devise允许非常灵活的运行时修改行为,但这也是一个潘多拉的盒子,因为它意味着代码可以结束在任何给定页面的所有地方运行,这使得维护一个噩梦。

WordPress非常擅长成为一个CMS,但是一旦你开始把它推到这些边界之外,你就会陷入困境,并且发现自己不得不编写自己的更抽象的框架,这个框架在Wordpress的上下文中运行,以便能够实现你的应用程序的需求。

这就是说,如果你有一个应用程序,你可以在Wordpress的环境下build立,我会说去吧! WordPress可以成为构build概念validation或MVP的绝佳工具。 如果它让你启动并运行,那么这可能是编写完整应用程序的正确select。 但是,要注意的是,随着产品devise的成熟和观众的增长,你会碰到一些砖墙,除非你的应用程序符合一系列相当狭窄的devise要求,所以长期来说,你可能会发现自己不得不移动到自定义应用程序。

凭证:我花了几年时间来维护一个Wordpress安装,每月提供超过2500万个独特的服务,而且我们必须非常聪明才能保持运行。 之后我们用一个Rails应用程序取代了它,这个应用程序的服务速度提高了10倍到30倍,并且作为一个应用程序可扩展性更强,使我们能够开始探索Wordpress无法实现的应用程序潜力。

我想提出反对意见,即使我提出了最好的答案。

Rails真的很特别吗?

Rails由David Hansson创build,他从Basecamp中提取出来,这个软件被复制到一个免费的Wordpress插件WP Project Manager中 。 我认为这是一个相当不错的指标,Rails开发人员低估了PHP和Wordpress。

MVC和WP

诚然,它不遵循MVC模式。 但是,如果你使用钩子 ,从视图(模板)中分离逻辑(插件),那么你将有很好的代码分离。 (还提示:自定义posttypes就像模型。)

框架与应用程序

正如你所看到的,Wordpress可以像应用程序或框架一样对待。 这是一个应用程序,包含您期望在框架中find的所有组件。 开箱即可获得安全性,身份validation和可扩展性。 这意味着要延长。

缩放

WP为18%的互联网网站提供支持,包括TechCrunch,Smashing Magazine和CNN(部分)。 似乎有办法让WP规模。 免责声明:我没有经验,就像这些超级巨人一样,所以我只提供猜测。

WP未来

WP社区目前的做法是将WP从一个CMS转移到一个框架。 我认为这是一个自然的进展,考虑到所有的作品已经到位。 WordPress的社区正在发展壮大。

我曾经做过一个决定,在一些初创公司里为高级电子商务,社区驱动的市场selectWordPress

它。 是。 最差的。 可能。 决策。

这就是我的感受:

在这里输入图像说明

一开始,它看起来不错 – 你有惊人的社区,一切的插件等。但让我们面对事实 – 根源 – WordPress是博客平台

  • 内容的每一个平安在技术上都是post
  • 创build高级项目关系是一场噩梦
  • WordPress 不是面向对象的。 它有很多类,但是一般来说,你将不得不使用get_post_meta等许多functions来pipe理它的核心特性。 像$post->author()->comments()只是一个梦想。
  • function不一致。 某些function有些作用,其他似乎非常相似的function则以不同的方式工作。 有时你需要一些奇怪的黑客才能完成似乎很简单的任务。 它使你经常阅读文档,看看你第一次使用的函数是如何工作的。 (说实话,我需要说的是,WordPress文档非常棒!)

WordPress社区做得很好,但与任何良好的框架相比,有一个主要区别 – 框架只是框架 – 它们是一套工具 ,这些工具可以帮助您完成项目。 WordPress已经在努力成为你可能会改变的东西。

我会说:如果你需要一辆车,你可以购买一些工具,并build立它,或者你可以买一辆卡车,并尝试修改,直到它开始看起来像一辆车。

我永远不会使用任何需要一些组织良好的自定义function的WordPress。

对于博客和一些小型电子商务来说,这只是一个好消息(仅仅是因为有些人做了很好的改装卡车,成为了一款创造产品function的汽车,这些产品是真正的贴子,把它们与促销联系在一起,真的是后期devise,增加了一些促销经理们以一种神奇的方式把它们包装在一起)。

不是一个真正的答案,而是一个提示:

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

就好像你可以完全替代它……我认为这主要是逻辑stream程的问题。 这取决于您打算执行多less必要的(Ruby on Rails)与描述性(WordPress)编程。

我不认为WordPress可以取代Rails,因为与RoR相比,WordPress只有有限的API和支持。 虽然wordpress是博客应用程序的强大工具,但使用诸如Radiant CMS,Refinery CMS,Locomotive等gem的轨道也可以达到同样的效果。 用ttd添加像ttd这样的function可以很容易地通过rails来实现,这对于wordpress来说是非常困难的。

与devise和cancan的authentication和授权机制一样。 与wordpress做同样的事情是不容易的。

Rails让程序员的生活更轻松。 对于整个networking应用程序,我会一直喜欢走轨。

WordPress不能代替X框架,但是两者肯定可以互补。

例如,一个有着迷人主题的WP前端提供CMS内容是很难打败的; 代理到后端服务器的自定义内容,瞧,两全其美。 否则,WP将不可避免地遇到各种要求,你会发现自己正在往圆形的圆孔兔孔下去,这确实是一个痛苦的地方; 这就是X框架进入的地方,填补了WP差距。

WP没有扩展的概念可能有一定的道理,但是对于一般情况下的95%来说,它会处理任何事情,尤其是WP Cache或其他caching插件。

有人可能会说,你可以用Django或RoR来构buildWP! 嘿,嘿,你先;-)

FWIW,我避免dynamic语言框架,赞成静态/强types的对应。 bling使用WP,速度/可伸缩性/安全性使用静态X框架。 当然,这是一个偏好的问题,显然有些人更喜欢编译时安全性的运行时灵活性。 我现在完全在后者的营地